|
I am trying to populate a ListBox in a dialog.
My error is in this line:
m_MyDialog.m_ctlMyListBox.AddString("Hello");
I can populate the list box AFTER I open the dialog, but if I try to place anything in the ListBox BEFORE I open the dialog, I get a assertion error. I can, however, set other variables in the dialog prior to opening it.
Where have I failed?
Richard
|
|
|
|
|
CListBox::AddString is just a thin MFC wrapper over Win32 message LB_ADDSTRING. The function will work only if your CListBox variable is properly initialized (mapped to some HWND). The initialization usually occurs in DoDataExchange called from CDialog::OnInitDialog - DDX_Control does this.
You can't initialize CListBox before dialog is created - there's no listbox window to be associated with C++ member variable of type CListBox.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Hello, the codegurus around the world.
If you have no idea of that ListBox is acutally created or not,
we can check this by GetSafeHwnd() or GetDlgItem();
if (m_MyDialog.m_ctlMyListBox.GetSafeHwnd())
or
if (m_MyDialog.GetDlgItem(IDC_MYLISTBOX))
These values isn't NULL,
we can add the string to the list box.
Otherwise, we must change the location which the code tries
to add the strings to the listbox.
Have a nice day.
-Masaaki Onishi-
|
|
|
|
|
Populating a list box with it's initial contents is usually done in OnInitDialog(). You could always have a list of items in a collection which the OnInitDialog functions puts in the listbox at runtime if you needed to set your items up before the dialog is created.
> Andrew.
|
|
|
|
|
I'm new in VC++ programming, and i have to create a dlgbox which have a button which have to catch value in a access database. i don't know how to do that, so if someone could help by showing the correct syntax for this application.
thanks
gerald
|
|
|
|
|
do you mean that when they click a button a value must be read from the database and displayed on a dialog control?
if so, open a connection to the database (cdatabase and crecordset) and code the button click handler to read the reqd value from the reqd table (defined in crecordset) ... then display it on the reqd control
---
"every year we invent better idiot proof systems and every year they invent better idiots"
|
|
|
|
|
you see what i mean but could you be more explicit about the implementation, i never do this kind of work before?
|
|
|
|
|
In my propertyPages I need to use member variable of their propertySheet object But it is unidentified .
How can I call this variable ???
|
|
|
|
|
Use code like this in your poperty pages:
(CMyPropSheet*) pSheet = (CMyPropSheet*)GetParent();
Paolo.
|
|
|
|
|
I've been programming for a while now and created a vector drawing app and all, but one thing still bugs me...
I can't figure out what handles are
I mean for example the hWnd and hInstance?! My guess is that they are some kind of pointers?
The documentation of c++ doesn't tell me anything interesting. And I couldn't find anything on the internet. Please help me and tell me what they are for
Thanks,
WAVK
|
|
|
|
|
Handles are used for identifying OS objects (files, device contexts, windows, pens, etc). They may be pointers, array indices, map keys or something entirely else - the point is that the value of the handle is understood only by system. Your app is expected to use the handle via API functions - there's no need to 'interpret' their values other than checking for NULL or INVALID_HANDLE_VALUE.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
the type HANDLE is actually defined as void *
|
|
|
|
|
It doesn't matter. It's just a 32-bit value. On my W2K box calling CreateFile just returned HANDLE == 0x54, which is not a valid pointer, but perfectly valid file handle.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
No wonder I didn't understand them. This must be the most abstract thing of c
WAVK
|
|
|
|
|
Handles are a feature of Windows API, not the C++ language. That's why they aren't mentioned in C/C++ books.
|
|
|
|
|
Hi,
I need to be able to find out whether there is a process called OUTLOOK.EXE running. How do I do this?
Also, once i've found the process, I'll be displaying a message to the user to close it... but i suppose a neater way would be to close it for them. is this possible?
Thanks
|
|
|
|
|
Searching for process is possible, but you need to use different techniques on Win9x/Me and NT/2000. It will be easier to use FindWindow or FindWindowEx to find a window with given class name and/or caption. You can check the class name of the main Outlook window using Spy++.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Look at:
MSDN article "HOWTO: Attach to a Running Instance of an Office Application
Q238975"
|
|
|
|
|
Hi ^o^:
I have a problem:How to convert between LPBYTE and CString??
Thanks for all the help.
|
|
|
|
|
Convert to LPTSTR and then CString
example
LPBYTE lpData;
LPTSTR lpText;
CString szText;
lpText = (LPTSTR)lpData;
szText = lpText;
or
LPBYTE lpData;
CString szText;
szText = (LPTSTR)lpData;
|
|
|
|
|
Thanks.
and How to convert CString to LPBYTE??
|
|
|
|
|
CString strTest;
LPBYTE pBuffer;
pBuffer = (LPBYTE) strTest.LockBuffer();
maXallion "Look for bugs, I hate bugs!" - Warden, The Mummy www.maxallion.de - coded evil & more
|
|
|
|
|
Hi,
Can you help me ?
How can do programm which receive messages when user move with mouse out of window.
LB
|
|
|
|
|
TrackMouseEvent
Remarks
=======
The mouse pointer is considered to be hovering when it stays within a specified rectangle for a specified period of time. Call SystemParametersInfo and use the values SPI_GETMOUSEHOVERWIDTH, SPI_GETMOUSEHOVERHEIGHT, and SPI_GETMOUSEHOVERTIME to retrieve the size of the rectangle and the time.
Note The _TrackMouseEvent function calls TrackMouseEvent if it exists, otherwise _TrackMouseEvent emulates TrackMouseEvent. The _TrackMouseEvent function is in commctrl.h and is exported by COMCTRL32.DLL.
Requirements
============
Windows NT/2000 or later: Requires Windows NT 4.0 or later.
Windows 95/98/Me: Requires Windows 98 or later.
Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.
|
|
|
|
|
You can use API function SetCapture.
|
|
|
|