|
-
July 2nd, 2009, 09:20 AM
#1
Caret in custom Edit disappears on losing/gaining focus
Hi,
I've written a C++ OCX control. This sits inside a VB.NET UserControl which is then presented to the client within Internet Explorer.
I wanted to display a custom caret shape so I coded it up and when I enter the edit control, the caret appears ok, blinking away as you'd expect. If I move to another control within the OCX and then move back to the edit control, the caret is shown correctly.
However, if I move focus to the edit control, then show then hide a message box the caret disappears, even though the focus is in the edit control.
I removed the caret code but still get the same behaviour.
Within the OCX, I create edit control windows, based on the standard EDIT class; e.g.
lpfnEdit = sWndSys.lpfnWndProc;
// Clone the Emulator Entry from the System Edit
sWndReg.lpszClassName = "MYEDIT";
sWndReg.lpfnWndProc = MyEntry;
sWndReg.style = sWndSys.style & ~CS_PUBLIC & ~CS_CLIPSIBLINGS;
RegisterClass(&sWndReg);
:
hwnd = CreateWindow("MYEDIT", pszEditText,
style, wr.x, wr.y, wr.cx, wr.cy,
parentHwnd,
(HMENU)nId, hAppInstance, NULL);
:
In the custom Window Proc I did have my own Paint to draw my own border, and some additional key handling routines, but I took all that out so that it just calls the standard EDIT class WndProc and I still get the same issue.
Have any other Win32 developers experienced a similar problem and if so, how did you get around it?
Cheers
Rich
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|