|
How does one remove WS_EX_NOPARENTNOTIFY from an edit control? Is that the same as choosing Notify in the properties?
|
|
|
|
|
What are you going to do when the edit control is clicked on?
Depending on what you're doing, it may be easier to just responde to the EN_SETFOCUS notification
for the edit control.
ON_EN_SETFOCUS( IDC_EDIT1, OnEdit1SetFocus )
...
void OnEdit1SetFocus()
{
Edit control IDC_EDIT1 received focus...do something
}
Just a thought....maybe not specific enough for your needs.
Mark
|
|
|
|
|
I have a quick question. What does "Owner Drawn" mean? I see it all over the place but I have no idea what it means. Does it mean that the graphics are drawn by you?
Any help would be greatly appreciated.
Thanks,
BP
|
|
|
|
|
BlitzPackage wrote: Does it mean that the graphics are drawn by you?
Yes, by handling the erase background and paint events.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
Thanks. I always wondered what that meant.
|
|
|
|
|
Christian Graus wrote: by handling the erase background
All the win32 controls I can think of, only provides a hook to WM_PAINT. Are you mistaking owner draw for subclassing?
--
Now with chucklelin
|
|
|
|
|
Specifically, it means that the owner window (usuall the parent) draws the item(s).
This allows you to change the appearance of child controls (like list/combo boxes) without subclassing the child controls themselves.
It is also used to draw custom menus (where subclassing isn't possible)
For Common Controls (comboboxex, treeview, list view control etc.), Owner Draw is replaced by Custom Draw, which provides a more granular control over what you (have to) do and what can remain default.
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify! || Fold With Us! || sighist
|
|
|
|
|
I'm getting an access violation in my code when I'm creating a dial entry in the default phonebook. I've tried so many different ways to load the data into the operators that are being passed to the RaasSetEntryProperties that I think I've gotten to buried in the problem and need to post it for some help. I'm a rookie, so if there is other portions of my code below, please feel free to school me. I've debugged enough with stop point that I know that the RasSetEntryProperties call is causing the error within the RASAPI. I am calling the funtion from the constructor of a class I'm creating, if that helps.
LPRASENTRY myRasEntry = new RASENTRY;
myRasEntry->dwSize = sizeof(RASENTRY);
lstrcpy(myRasEntry->szLocalPhoneNumber, "6479008" );
lstrcpy(myRasEntry->szDeviceName, TheDeviceName);
lstrcpy(myRasEntry->szDeviceType, "RASDT_Modem");
myRasEntry->dwFramingProtocol = RASFP_Ppp;
myRasEntry->dwfNetProtocols = RASNP_Ip;
myRasEntry->dwfOptions = 0;
myRasEntry->dwfOptions = RASEO_IpHeaderCompression | RASEO_ModemLights | RASEO_SwCompression;
myRasEntry->dwType = RASET_Phone;
//Create Phonebook entry called "Remote"
//DWORD dwAnotherBufferSize = sizeof(RASENTRY);
DWORD dwAnotherBufferSize = 0;
char ConnectionName[7] = "Remote";
(void) RasGetEntryProperties(NULL, NULL, NULL, &dwAnotherBufferSize, NULL, NULL);
dwErr = RasSetEntryProperties(NULL, &ConnectionName[7], myRasEntry, dwAnotherBufferSize, NULL, 0);
Thank you,
Chuck Foster
|
|
|
|
|
cfo5ter wrote: lstrcpy(myRasEntry->szDeviceType, "RASDT_Modem");
RASDT_Modem is a macro defined in Ras.h #define RASDT_Modem TEXT("modem") so do not put it in quotes.
You may be right I may be crazy -- Billy Joel --
Within you lies the power for good, use it!!!
|
|
|
|
|
Also I noticed that you are not setting all the RASENTRY variables that you are not using to zero. They will have random values in them and that could also be the cause of your problem.
LPRASENTRY myRasEntry = new RASENTRY;
memset (myRasEntry, 0, sizeof(RASENTRY);
...
You may be right I may be crazy -- Billy Joel --
Within you lies the power for good, use it!!!
|
|
|
|
|
That was the ticket. Thank you so much. Lesson learned. memset enterred into my mind for use everywhere. Oddly it does not create an entry titled "Remote" but I will figure this out.
By the way, I changed the string problem as well.
Thanks again,
Chuck
|
|
|
|
|
cfo5ter wrote: Oddly it does not create an entry titled "Remote" but I will figure this out.
dwErr = RasSetEntryProperties(NULL, &ConnectionName[7],
Why are you passing in the address of the terminating NULL when you want the address of the string?
dwErr = RasSetEntryProperties(NULL, ConnectionName,
You may be right I may be crazy -- Billy Joel --
Within you lies the power for good, use it!!!
|
|
|
|
|
It did want the address of the string. The 7 index was a rookie mistake of mine. The final line that created the entry I wanted with the name I wanted was:
dwErr = RasSetEntryProperties(NULL, &ConnectionName[0],
I'm good to go,
Thank you,
Chuck
|
|
|
|
|
In C/C++ using the name of an array, ConnectionName in this case, is the same as using the address of it's first element, &ConnectionName[0]. So the standard way is to just use the array name.
You may be right I may be crazy -- Billy Joel --
Within you lies the power for good, use it!!!
|
|
|
|
|
hey all,
So I am reading a file into a char buffer[] and need to combine two of the values in the buffer into an int value. The Documentation for my device says that values 5 and 6 in the array are one value with MSB first. How can I put these values into an int?
thanks
- legit
|
|
|
|
|
lets assume that u have a buffer of type (char *) called charbuffer
you can convert it like this (I havent tested it but it should work):
short *intbuffer = (short*)charbuffer;
now every consecutive two chars in charbuffer will be treated as 1 short (16-bit) integer in intbuffer.
regards
Mohammad
And ever has it been that love knows not its own depth until the hour of separation
|
|
|
|
|
Mohammad A Gdeisat wrote: short *intbuffer = (short*)charbuffer;
now every consecutive two chars in charbuffer will be treated as 1 short (16-bit) integer in intbuffer.
FYI that won't work on an Intel x86 machine in his case because the most significant byte is
FIRST in the char array.
Mark
|
|
|
|
|
then u can use masking and shifting to swap between hi-order and low-order bytes.
Regards,
Mohammad
And ever has it been that love knows not its own depth until the hour of separation
|
|
|
|
|
const char* str_int = "777";
int i = atoi(str_int);
Convert a string to integer.[^]
I'd love to help, but unfortunatley I have prior commitments monitoring the length of my grass. :Andrew Bleakley:
|
|
|
|
|
int intvalue = ((buffer[5] << 8) | buffer[6]) & 0x0000FFFF;
Edit: Forgot a parenthesis
|
|
|
|
|
Please help me write a simple Dialog base that can load an image to a frame
|
|
|
|
|
You can use LoadImage or CImage class for load an image
|
|
|
|
|
Hi guys,
I create a popup context menu dynamically and this menu can contain many sub menus. I use InsertMenu function like this:
Menu.InsertMenu(i,MF_BYPOSITION,ID_FAV_BASE+i,element.strQuickName);
the problem is that the created menu is disabled, I want to handle the message in the OnCommand() handler, but when I call TrackPopupMenu() the added menu items are just disabled and I dont know how to enable them.
Thanks
Mohammad
And ever has it been that love knows not its own depth until the hour of separation
|
|
|
|
|
See CMenu::EnableMenuItem()
In MFC you can use the command enablers in the parent window as well...
See ON_UPDATE_COMMAND_UI, ON_UPDATE_COMMAND_UI_RANGE, etc.
|
|
|
|
|
No, it is not. The menus were disabled by the MFC framework because the have no message handlers for their associated IDs.
The strange thing is that I create the same menu Items with the same IDs twice, once as a menu attached to the main window, and once as a context menu, those that are attatched to the main window work flawlessly, but those that are used as context menu are always disabled!!!
Any idea?
And ever has it been that love knows not its own depth until the hour of separation
|
|
|
|