|
Have a look at here[^]...
|
|
|
|
|
Thank you....but your solution looks work as my previus one, i.e. it is a perfect solution to manage the message inside the control, but his parent window doesn't receive the classic message BN_CLICKED
My be also I'm wronging something...
BOOL XBmpChkBtn::OnBnDblClicked(){
const MSG* pstMSG = GetCurrentMessage();
DefWindowProc(WM_COMMAND, MAKELONG(GetDlgCtrlID(), BN_CLICKED), (LPARAM) GetSafeHwnd());
return TRUE;
}
Russell
|
|
|
|
|
Please correct as
DefWindowProc( WM_LBUTTONDOWN, pstMSG->wParam, pstMSG->lParam );
|
|
|
|
|
The solution looks:
BOOL CMyCButton::OnBnDblClicked(){
GetParent()->PostMessage(WM_COMMAND, MAKELONG(GetDlgCtrlID(), BN_CLICKED), (LPARAM) GetSafeHwnd());
return TRUE;
}
or the same of:
ON_CONTROL_REFLECT(BN_DOUBLECLICKED, CMyCButton::OnBnDblClicked)
and
BOOL CMyCButton::OnBnDblClicked(){
GetParent()->PostMessage(WM_COMMAND, MAKELONG(GetDlgCtrlID(), BN_CLICKED), (LPARAM) GetSafeHwnd());
}
but I'm not sure that it is the right way to manage messages when using derived controls, I was aspecting to do everything inside the control class: that call to GetParent() looks strange to me.
any comments?
Russell
|
|
|
|
|
You posted the solution for yourself.
You are handling the conversion from BN_DOUBLECLICKED to BN_CLICKED in the button control as you desire.
But the whole purpose was to change the message to the parent from BN_DOUBLECLICKED to BN_CLICKED.
So you need to send / post the message to the parent. Which the GetParent () helps you with. If it makes it clearer for you, try this:
BOOL CMyCButton::OnBnDblClicked()
{
HWND hButton = GetSafeHwnd ();
HWND hDialog = GetParent (hButton);
::PostMessage(hDialog, WM_COMMAND, MAKELONG(GetDlgCtrlID(), BN_CLICKED), (LPARAM)hButton);
}
Ends up being the same though. I'd use SendMessage rather than PostMessage, but that's a different question.
Iain.
|
|
|
|
|
I'm according to you
Thank you
Russell
|
|
|
|
|
This is the code i used ..........To CREATE a File
and enter a default string..
...........Ive TO USE VC++ MFC
void CFileApp::OnInsert()
{
HANDLE hFile = CreateFile(_T("C:\\Documents and Settings\\MyFile.ini"),
GENERIC_WRITE, FILE_SHARE_READ,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
AfxMessageBox(_T("Couldn't create the file!"));
else
{
// Attach a CFile object to the handle we have.
CFile myFile(hFile);
static const char sz[] = "Hockey is best!";
// write string, without null-terminator
myFile.Write(sz, lstrlen(sz));
myFile.Close();
}
}
This works.....
BUt For INI I want to ENTER DATA SECTIN-WISE....
...........
Here Data is written just like in Text files...
I need to use ...GetProfileString....
WriteProfileString..... n so on...
how do i do it??
I NEED TO MAKE A PHONE DIRECTORY USING INI FILE......
|
|
|
|
|
Do you plan to use as configuration file for your application ? If yes, this is a bit an outdated way of doing this. More recent applications use the registry to store config options.
If you choose to use the registry, search for articles on CP, there are really a lot. They should get you started.
|
|
|
|
|
No... Im not using INI File to store confiq info...
IM USING INI FILE TO CREATE A PHONE DIRECTORY...
i know there r better methods...
BUT ITS MY ASSIGNMENT....
..........N ITS SAID THAT I USE ONLY INI FILE
|
|
|
|
|
anna mathew wrote: IM USING INI FILE TO CREATE A PHONE DIRECTORY...
As I already suggested, MFC object serialization, is far better for the purpose.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
The following code snippet create two keys under the section 'General' of the File 'MyFile.ini', and then reads one of the keys, showing the value in a message box.
(of course error check is left to the reader...)
Please note 1: if the file doesn't exist, it creates both the file and the section.
Please note 2: I used WritePrivateProfileString and GetPrivateProfileString , otherwise the I/O would happen inside the registry.
const CString szINIFILE = _T("C:\\Documents and Settings\\anu\\beginning\\MyFile.ini");
CString szFirstName;
WritePrivateProfileString(_T("General"),_T("FirstName"), _T("Anu"), szINIFILE);
WritePrivateProfileString(_T("General"),_T("LastName"), _T("???"), szINIFILE);
GetPrivateProfileString(_T("General"), _T("FirstName"), _T(""), szFirstName.GetBuffer(MAX_PATH), MAX_PATH, szINIFILE);
szFirstName.ReleaseBuffer();
AfxMessageBox(szFirstName);
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Thanks....
this works....
but i put the same lines of code in my MFC
application....
still it works....
can u explain how?
WriteProfileString...... is a console function...
then how come it work with MFC?
|
|
|
|
|
WritePrivateProfileString is just a WIN32 API 's function: Console applications, as well as GUI (and MFC ) ones can profitably call it.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
|
The control will popup a dialog box,
and when I press a buttion in the dialog,
I need the control fire a event?
I tried to do it as below:
CMyDlg::OnOk
{
CMyCtrl *pCtrl = dynamic_cast<>(GetParent());
...
pCtrl->OnUpdate(var);
}
How to solve it?
modified on Monday, November 3, 2008 7:03 AM
|
|
|
|
|
I would like to know how to configure the ip address of a notebook PC. I only want to configure the wireless network adaptor how can I identity it if I don't know the name of the wireless network adaptor.
Also, how to configure the adhoc mode in the notebook by Visual C++?
Please help!!!
|
|
|
|
|
1/ I doubt it's any different on a notebook to a normal one, other than needing changed more often.
2/ I had the same problem a while ago, as I was forever changing my IP address, so I wrote a little tray app to do it. Quick and dirty, but it worked.
I gave up trying to change it programmatically, and ended up using the
netsh interface ip set command instead, and CreateProcess to make sure that no dos prompt flashed up.
3/ I know nothing about adhoc wifi! Would be nice to learn some time...
Iain.
|
|
|
|
|
In the notebook PC, there are more than one network interface. How can I identify the wireless one from another? I know that we can change it with registry if we know the right one.
I can find the adhoc wifi setting in the registry. Can anyone give some hint of it??
Please help!
|
|
|
|
|
i want change the font size for existing createfont() handle without creating again.
Is it possible?
|
|
|
|
|
The answer looks no, or too complex to be the right way.
Why you doesn't like a solution like thi one?
LOGFONT LogFont;
m_Font.GetLogFont(&LogFont);
LogFont.lfEscapement=900;
m_FontVert.CreateFontIndirect(&LogFont);
in my code I'm rotating the font to have vertical text, but you can do the same on the same CFont variable to change other parameters as the font size.
Russell
|
|
|
|
|
I have created this socket xample application given in learn vc++ in 21 days which is successfully working. now my question is how do i connect to multiple ip addresses in my applicaion.
right now this is what is does
m_sConnectSocket.Connect("25.25.25.25", m_iPort);
this ic working. but i want to add multiple ipaddress.
Thanks in advance.
|
|
|
|
|
What do you mean exactly by multiple addresses ? Why can't you simply open several socket connections if you need ?
|
|
|
|
|
multiple address means multiple people. tried to open several connections. if i give 2 or more connections none of the connections are successful
|
|
|
|
|
But what about using multiple sockets instead of one ? How many connections do you need to open ?
|
|
|
|
|
i have not ventured much of socket programming.. so i dont know much about it.. infact i can tell u that it was the first application that i am trying in socket programming. well, when i am trying with one connection it is working. but if i am using multiple connections it is not. i want something like if i send a message then it should reach multiple people.. if multiple sockets can be used then i needs some leads for that.
|
|
|
|