|
The value of MyMessage is WM_USER+1 and it is working fine for other controls.
Without subclassing also io have tried but the message is getting lost somewhere because the focus is on the editbox of combobox and not on combobox.
Thanks
|
|
|
|
|
One thing I noticed just now...
<blockquote class="FQ"><div class="FQA">ashtwin wrote:</div>hChild = ::GetFocus();
hParent = ::GetParent(hChild);
::PostMessage(hParent, WM_MYMESSAGE, /*pMsg->wParam*/0, /*pMsg->lParam*/0); </blockquote>
So the parent is the combobox itself, and the message is posted to it. So this message is going to be received by combobox, not the parent of the combobox. Is it expected?
What is happening exactly with the subclassing?
|
|
|
|
|
No it is not expected, i want to send the message to the parent dialog and not to the combobox. Because in dialog class i am setting the focus to the next control after receiving the message i.e why i have done subclassing for combobox.
But after doing subclassing mouse clicks and other things are not working for combobox and even it is effecting other comboboxes also(eg they are appearing as disabled untill i am cliking the mouse on them).
Thanks
|
|
|
|
|
So you should check whether it is the correct control or not. You can check control ID since you have to do it in only one control. Calling ::GetMenu( hWndCombo ) will give you the ID, provided hWndCombo is the handle to the combobox obtained by calling GetParent( hWndEdit ). You should only change the focus if the control ID is of the specified combo.
|
|
|
|
|
Hi,
now after doing the following changes the application is working fine but still i don't know about the problem with subclassing.
<br />
BOOL MyBaseClass::PreTranslateMessage(MSG *pMsg)<br />
{<br />
if(::FindWindow(NULL, _T("Temporary Catheter Connections")))<br />
{<br />
if(pMsg->message == WM_KEYDOWN)<br />
{<br />
if(pMsg->wParam == VK_TAB)<br />
{<br />
COMBOBOXINFO cbi;<br />
hChild = ::GetFocus();<br />
hParent = ::GetParent(hChild);<br />
cbi.cbSize = sizeof(COMBOBOXINFO);<br />
if(GetComboBoxInfo(hParent, &cbi))<br />
{<br />
hParent = ::GetParent(hParent);
}<br />
::PostMessage(hParent, WM_MYMESSAGE, 0, 0);<br />
}<br />
}<br />
}<br />
return BaseClass::PreTranslateMessage(pMsg);<br />
} <br />
<br />
Thanks
|
|
|
|
|
OK...
Please confirm my understanding.
You need to change the focus to the next control when the focus is set to combo using Tab key.
Am I right?
|
|
|
|
|
Yes, u r right.
Thanks
|
|
|
|
|
Then removing the WS_TABSTOP property wasn't enough?
|
|
|
|
|
I want the focus on combobox also, when user presses the tab key on the control previous to the ComboBox. So, problem was that if the focus is on Combobox and user presses the tab key, then it should move to the next control.
Thanks
|
|
|
|
|
Hi
In my system not installed languagepack.when i paste chinese characters in rtf ..
In sending i wrote this code...
m_chattext.GetWindowText(m_Text);
AfxMessageBox(m_Text);
here m_chattext is rtf object.
in messagebox the chinese characters are not displaying..its coming ???? how i can solve this problem ...plz tell...
#sanroop#
|
|
|
|
|
There is no one thing, hence your difficulty in getting this question answered.
Do you understand about Unicode I wonder? You need to compile your application with UNICODE and _UNICODE defined so that AfxMessageBox maps to AfxMessageBoxW, which is capable of displaying Chinese characters if and only if the default system font that it uses, (depends on XP or Vista etc) contains those characters.
Then you need to make sure that you are using wide character variables (wchar_t, TCHAR if UNICODE is defined) to both get the data form the clipboard and pass it to the message box so that you don't loose data along the way. That's if the clipboard is giving you wide character data in the first place. You might have to request a different format, or do conversion from a specific Chinese code page. Do you know about Code pages?
You can see that there is rather a lot going on here already and this may not be the end of the story as you're involving RTF as well. To get a more definitive answer you'll need to give better information on what you already understand and what you're actually doing, a few lines of code would be good, and be prepared to ask a series of smaller questions to get all the info you need.
Nothing is exactly what it seems but everything with seems can be unpicked.
|
|
|
|
|
A non-Unicode program can display Chinese text in MBCS way. But two premises are required:
1. The system should be Chinese character set installed (for viewing with IE and other text applications).
2. The text buffer to output or to input in the source code should not contain a second character set (for example a mix of Chinese and Japanese). Otherwise when you are about to save the .cpp file to compile, VC++ prompts and forces you to save the file in Unicode.
Maxwell Chen
|
|
|
|
|
Indeed but I think in this case 1. is scuppered by the lack of a language pack and 2. can't be gaurenteed because the data is external input form the clipboard. It could contain anything.
Also MBCS is a minefield if you don't already understand Unicode and Code Pages. It's pretty treacherous even if you do
Nothing is exactly what it seems but everything with seems can be unpicked.
|
|
|
|
|
The lines last far too long, but the horizontal scroll bar does not show up. I can not reach the "Edit" button to modify the post.
Maxwell Chen
|
|
|
|
|
A non-Unicode program can display Chinese text in MBCS way. But two premises are required:
1. The system should be Chinese character set installed (for viewing with IE and other text applications).
2. The text buffer to output or to input in the source code should not contain a second character set (for example a mix of Chinese and Japanese). Otherwise when you are about to save the .cpp file to compile, VC++ prompts and forces you to save the file in Unicode.
Maxwell Chen
|
|
|
|
|
Hi friends,
I need to put two small buttons in the caption bar of file open dialog whenever the user invokes open dialog from any application ... Please tell me how can i do it?
Thanks in advance,
John.
|
|
|
|
|
The technique you need is called 'global subclassing', you'll need to look it up and proabably go through a couple of articles to get the hang of it. The file open dialog is designed to let you do this. The technique has different caveats and gotcha's on different Windows versions as well so you need to know what you're targetting. The good news it can definitely be done
Nothing is exactly what it seems but everything with seems can be unpicked.
|
|
|
|
|
How can I get the scaleline of the bitmap Image
Trioum
|
|
|
|
|
trioum wrote: How can I get the scaleline of the bitmap Image
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.
[my articles]
|
|
|
|
|
Assume you have a CBitmap object, pBmp. Follow these steps:
1) Declare a BITMAP structure, btmp.
2) Call pBmp->GetBitmap(&btmp) to fill in the BITMAP structure.
3) btmp.bmHeight should be the scan lines (height of the bitmap).
4) BTW, m_bitmap.bmWidthBytes should be the width of the bitmap times the color depth in bytes.
Best,
Jun
|
|
|
|
|
i created a static lib under vc++6, i included this file in cpp file, setting is also right? set active.so what happened? thanks
Li Zhiyuan
5/10/2006
|
|
|
|
|
It seems that compiler is not able to find the header file.
Specify the path of folder containing the header file in the VC++ include directories.
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.
[my articles]
|
|
|
|
|
after i set include path,and then compiled project, output showed below:
Linking...
LINK : fatal error LNK1104: cannot open file "psosta.lib"
Error executing link.exe.
what happened?
thanks
Li Zhiyuan
5/10/2006
|
|
|
|
|
Hence you need to perform a similar task for VC++ Library Directories (add the path of the folder containing psosta.lib ).
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.
[my articles]
|
|
|
|
|
how to add? my way is right to add it below? first go to tool->option..choose library..and then add a path cotaining this folder..for include path..i did with same way..right? thanks a lot.
my msn is lizhiyuan16@hotmail.com, can we talk in msn,thanks.
Li Zhiyuan
5/10/2006
|
|
|
|