|
I don't think you want nor need:
SendMessage(hwndTool, TTM_RELAYEVENT, 0, (LPARAM) (LPMSG) WM_MOUSEMOVE);
Have you tried removing this.
Also add:
memset( &ti, 0, sizeof( TOOLINFO ) );
before: ti.cbSize = sizeof(TOOLINFO);
Have a search around CP for articles which use Tooltips.
Neville Franks, Author of ED for Windows. www.getsoft.com
Make money with our new Affilate program
|
|
|
|
|
Thanks for the help. I got it working by installing a message hook to take care of the message relaying and it works like a charm.
|
|
|
|
|
I know it's stupid but I'm new to UNICODE ...
So. In my code I want to call inet_addr which takes const char* as parameter, but my string which I want to pass is wchar_t . How do I squeeze it into that func?
This is what I get from compiler:
<br />
error C2664: 'inet_addr' : cannot convert parameter 1 from 'const wchar_t *' to 'const char *'<br />
Will it even be able to work with UNICODE string??? MSDN doesn't say a word about UNICODE for this func. I do have _UNICODE in my project defined and everything.
Thanks a lot.
|
|
|
|
|
You can convert the wchar_t * to char * with one of the following functions:
- wcstombs (include stdlib.h)
- WideCharToMultiByte (include winnls.h)
|
|
|
|
|
Use the WideCharToMultiByte() API. It's documented in MSDN. Set the cbMultiByte parameter to 0 to determine the length of the target (ASCII) buffer. Then allocate a char buffer and call the API again to do the actual conversion.
If a train station is where the train stops, what's a workstation...?
|
|
|
|
|
Hi,
I create a MCI control window with 'MCIWndCreate' to play an avi file.
I want to disable overlay to make a bitblt from the video to a static control.
With overlay activated (the default behaviour) I only get a black rectangle.
Is there a way to disable overlay or does another control allow frame grabbing ?
thx.
|
|
|
|
|
I have a combobox and a clistCtrl. In the listCtrl I have several items that are relevant to all the entries in the combobox. So for example I have file1 and file2 in the combo, and the values iI can set for these files are isted in the listctrl. Now in the OnItemCChanged I go and do stuff. THe only problem is that if the listCtrl had an item selected in it for the first file, file1, then when I switch to file2, and want to set its value for that same list item, the OnChanged doesnt fire since its really not changed. How can I "reset" the listctrl so that it responds to any item I click on when I'm gathering info for file2 , even if it happens to be the same one I last clicked on for file1. I need to start back afresh at the first item in the list....or with nothing as the selected item . How to make it forget soimething wasa selected, and behave as it does when running for the first time?
Appreciate your help,
ns
|
|
|
|
|
Seems that when you handle changes to the combo box, you want to repopulate the list control with entries that pertain to the combo box selection. In this case, DeleteAllItems() and add the new ones in the list control.
In the interests of user-friendliness, you may want to also preselect the first (or most appropriate) item in the list control after populating it.
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
How do you preselect an item?
|
|
|
|
|
m_listctrl.SetItemState
(nIndex,
LVIS_SELECTED | LVIS_FOCUSED,
LVIS_SELECTED | LVIS_FOCUSED); Bug me to send you my collection of handy-dandy list/tree control functions. (They're @ home).
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
And its great to have you back......
|
|
|
|
|
I have a project that use ODBC. I want to use a CListCtrl to represent my database data. When you create an ODBC project, you have an ***view class derived from CRecordView with a dialog attached to it. That's where I want to have my CListCtrl.
So I have putted my CListCtrl in the dialog with the res manager. I added a variable named m_wndListCtrl that is bound to my control in DoDataExchange(). I use the style VS_REPORT.
DDX_Control(pDX, IDC_LISTCTRL_VIEWDATA, m_wndListCtrl);
and I added 3 columns inside my control. in the function
OnInitialUpdate().
CRect rect;
m_wndListCtrl.GetClientRect(&rect);
int nColInterval = rect.Width()/5;
m_wndListCtrl.InsertColumn(0, _T("Item Name"), LVCFMT_LEFT, nColInterval*3);
m_wndListCtrl.InsertColumn(1, _T("Value"), LVCFMT_LEFT, nColInterval);
m_wndListCtrl.InsertColumn(2, _T("Time"), LVCFMT_LEFT, rect.Width()-4*nColInterval);
The problem is that I dont see any column.
Thanks for helping
Everything's beautiful if you look at it long enough...
|
|
|
|
|
Weird. Try Invalidate().
Kuphryn
|
|
|
|
|
Debug and check the value of nColInterval , see if it's desired.
|
|
|
|
|
Your columns probably get created with a size 0. So as suggested debug your code and watch the nColInterval variable.
Or try creating the listctrl with hard coded values for the nColInterval:
<br />
m_wndListCtrl.InsertColumn(0, _T("Item Name"), LVCFMT_LEFT, 100);<br />
m_wndListCtrl.InsertColumn(1, _T("Value"), LVCFMT_LEFT, 100);<br />
m_wndListCtrl.InsertColumn(2, _T("Time"), LVCFMT_LEFT, 100);<br />
If this works you know its the size parameter
Good luck
|
|
|
|
|
I'm building a service that uses named pipes, and I want the connectnamedpipe to return immediately a connection occurs, or to timeout after a period of time.
Is it best to
A) set the timeout period vey small, and be continuosly looping/waiting for a client to connect. THis was if I signal the service to stop, at the end of the loop, I can just bail out.
B) set the timeout period to quite high, and from the main thread, if I want the service to stop, I signal the event that the Connectnamedpipe is waiting on. And then bail, BUT the signal looks just like a client has connected.
I've looked at the PJNaughter articles, but none of these deal with Overlapped operation.
Are there any other options that I may be missing??
|
|
|
|
|
Doesn't matter, found this excellent article
http://www.codeproject.com/win32/overlappedio.asp
|
|
|
|
|
Hello,
I am using VC++ .Net Standard on Windows XP Professional, and I have just
written an application for which I now want to create HTML Help. To
shortcut the procedure I have generated another new application with the
application wizard, including the help files. I now want to cut these files
out from the wizard application, and put them into my original app, where I
can develop them.
I have noted that in the .Net IDE, in the Solution Explorer, there are
supposed to be two sections in the tree for HTML Help: one for the project,
contents and index files, and then one for all the help topic .htm files.
But I can't seem to add the help project to my current app so that all the
files are correctly analysed. If I do Project -> Add Existing Item, the
files are not put under the HTML Help section. Come to that, I can't seem
to create the HTML Help section in the Solution Explorer.
I would be very grateful for hints on how to add a complete help project to
an existing app, so that it appears correctly, and runs as it should.
Thanks,
Trimtrom
|
|
|
|
|
Hi,
I'm kind of new to MFC so I really hope this isn't a stupid question. Anyway I have some code which basically declares a member function for message mapping as:
afx_msg void DoSomething (BOOL bVar = TRUE);
With the corresponding in the cpp file:
ON_BN_CLICKED(IDC_DOSOMETHING, DoSomething)
Now this compiles fine with VC6 but with VS.Net I get a compile error about not being able to do a static_cast and I was wondering if some behaviour about mapping to functions with arguments has changed in MFC 7. The ON_COMMAND macro gives the same error. So I've changed the code and I think it's better now but I wonder if I was just doing it wrong (bad style) all along or if this change caught many people off gaurd.
Thanks.
|
|
|
|
|
You should not have a parameter in the command handler. All command handlers must take the form afx_msg void OnSomeCmd(); VC.NET has better compile-time checking of these macros, so that's why it reports the error.
Dave
|
|
|
|
|
Dave Bryant wrote:
You should not have a parameter in the command handler. All command handlers must take the form afx_msg void OnSomeCmd(); VC.NET has better compile-time checking of these macros, so that's why it reports the error.
Dave
Thanks Dave. That's what I suspected but I just wanted to make sure I was doing it wrong all along.
|
|
|
|
|
Hello.
Does anyone know how can i retrieve window area that closed by other window.
Ex:First window is a calculator and second window is "Registry Editor" ,and "Registry Editor" is partialy on top of the calculator.
I need to retrieve the area of the calculator that is currently under the "Registry Editor".
The area that the user is not seeing because the "Registry Editor" is on top of it.
Thank you.
|
|
|
|
|
I think you can use GetWindowRgn() to get the region that corresponds to the window's visible portion.
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
|
I wrote my own handler for OnCommand in my CDialog class. In it I I did this:
if (LOWORD(wParam)==IDOK && lPAram==0)
{
CWnd* p = GetFocus();
if( *p == m_combo)
{
stuff
}
return OnCommand etc
}
When I hit enter after entering some text in the editpart of the combobox, and try to debug, the code never goes into the if (*p block....
How do I fix this? What am I doing wrong?
Appreciate your help,
ns
|
|
|
|