|
Got this code out of a MSJ from 1997
MS Systems journal example:
LONG DispatchMessageA( CONST MSG *lpmsg )
{
return DispatchMessageWorker( lpmsg, 1 );
}
LONG DispatchMessageWorker( CONST MSG *lpmsg, BOOL fAnsi )
{
if ( lpmsg->message == 0xFFFE0000 )
{
_UserSetLastError( ERROR_INVALID_PARAMETER );
return 0;
}
if ( lpmsg->hwnd )
{
pWnd = @ValidateHwnd( lpmsg->hwnd );
if ( !pWnd )
return 0;
}
else
pWnd = 0;
if ( (lpmsg->message != WM_TIMER) && (lpmsg->message != WM_SYSTIMER) )
{
begin_normal_message:
if ( pWnd == 0 )
return 0;
DWORD save_wParam = lpmsg->wParam;
if ( (lpmsg->message != WM_PAINT) && !(pWnd->someFlags9E & 4) )
{
if ( IsWindowUnicode( lpmsg->hwnd ) )
{
if ( fAnsi )
RtlMBMessageWParamCharToWCS( lpmsg->message, save_wParam );
else
RtlWCSMessageWParamCharToMB( lpmsg->message, save_wParam );
}
if ( 0 == (pWnd->pfnWndProc & 0x80000000) )
{
pWnd->pfnWndProc( lpmsg->hwnd, lpmsg->message,
lpmsg->wParam, lpmsg->lParam );
}
else
{
pfnWowWndProcEx( lpmsg->hwnd, lpmsg->message, save_wParam,
lpmsg->lParam, lpmsg->message, pWnd->0x90 );
}
}
else
{
if ( fAnsi )
_RtlMBMessageWParamCharToWCS( lpmsg->message, save_wParam );
_NtUserDispatchMessage( lpmsg );
}
lpmsg->wParam = save_wParam;
}
else
{
TIMERPROC pfnTimerCallback = lpmsg->lParam;
if ( pfnTimerCallback == 0 )
goto begin_normal_message;
if ( lpmsg->message == WM_SYSTIMER )
return _NtUserDispatchMessage( lpmsg );
return pfnTimerCallback( lpmsg->hwnd,
lpmsg->message,
lpmsg->wParam,
GetTickCount() );
}
}
LPCTSTR Dutch = TEXT("Double Dutch ");
|
|
|
|
|
Im designing a simple interface using MFC. When i add a list box to the main dialog, build it and then run it, the exe pops-up and works as expected. If i then go to the classwizard and add a Control-Clistbox variable to this list box and rebuild it and run it, nothing happens. The exe doesn turn up at all, the mouse pointer just changes to hour-glass and then back to the pointer. Anybody know why?
Ayush
|
|
|
|
|
If you just add the CListBox to the class and not the dialog, you're only getting a class member which is not tied to anything in the dialog, and it's never going to show up if you don't do some extra work.
If you want to wire up the list box into your dialog class, do what you did to add the dialog to the form, then use the ClassWizard to associate the list box to a class member.
Using ClassWizard[^], and the CListBox reference[^]
-- Ian
|
|
|
|
|
Dear Ian,
I dont seem to understand what you mean. After adding the list box to the dialog, i give it a control id using the properties menu on right-click. Then i run class-wizard and assign a Control variable of Clistbox type to this control ID. On Building it, i get no errors, but when i run it, it doesnt do anything, as expalined in my earlier post. Removing this variable makes it work though.
|
|
|
|
|
So you do this:
- Add a listbox to a dialog, and assign it an id of IDC_MYLISTBOX
- Use the ClassWizard to assign IDC_MYLISTBOX to a control bound to
a class member variable m_MyListBox.
And it doesn't work? That's odd. What's the dialog's .h file look like?
|
|
|
|
|
I write this below function to return CStringArray.
<br />
CStringArray info;<br />
info = m_Proc.Getinfo(m_arrFileName, m_arrPassword);<br />
When I compile there are error message show like these
<br />
error C2582: 'CStringArray' : 'operator =' function is unavailable<br />
error C2582: 'CStringArray' : 'operator =' function is unavailable<br />
error C2679: binary '+=' : no operator defined which takes a right-hand operand of type 'class CStringArray' (or there is no acceptable conversion)<br />
error C2558: class 'CStringArray' : no copy constructor available<br />
Do you know how to define operator = in CStringArray? Are there another way to do that?
Thank you for your answer.
|
|
|
|
|
Use the Copy member function of CObArray:
CStringArray info;
info.Copy(m_Proc.Getinfo(m_arrFileName, m_arrPassword);
Getinfo must return a CStringArray.
Try it.
-Dominik
|
|
|
|
|
Thank you for your answer Dominik.
I want to ask you another question that I write Getinfo function to return CStringArray.
CStringArray CCrypt::Getinfo(const CStringArray& fileName, const CStringArray& password) <br />
{<br />
CStringArray privkeyinfo;<br />
..<br />
..<br />
..<br />
return privkeyinfo;<br />
}
But when I compile there are error message show
error C2558: class 'CStringArray' : no copy constructor available
Do you know how to solve my problem?
|
|
|
|
|
The code you posted should work... are you sure that the error comes from this part?
|
|
|
|
|
You're getting this error because CStringArray doesn't support copy constructing and thus cannot be used as a return value. I would change the function so it takes the return value as a reference parameter instead:
<br />
void CCrypt::Getinfo(<br />
const CStringArray& fileName, <br />
const CStringArray& password,<br />
CStringArray& r_privKeyInfo )<br />
{<br />
}<br />
Then call it like this:
<br />
CStringArray arrPrivKeyInfo;<br />
m_Proc.Getinfo(m_arrFileName, m_arrPassword, arrPrivKeyInfo );<br />
Wenn ist das Nunstück git und Slotermeyer? Ja! Beierhund das oder die Flipperwaldt gersput!
|
|
|
|
|
Forgive my ignorance for what has probably a simple answer...
I'm using the GetLocalTime API to print current system date:
SYSTEMTIME st;
::GetLocalTime (&st);
sprintf (m_date, "%02d/%02d/%2d",st.wMonth,st.wDay,st.wYear);
m_doc->nParseTime [url_info.URL_Index] = GetTickCount ();
Presently the date prints as "11/02/2002" How would I change to have date displayed as "11/02/02"?
Thanks Much Everyone
|
|
|
|
|
Simply do the following:
m_date[6] = m_date[8];
m_date[7] = m_date[9];
m_date[8] = 0;
This would change 11/02/2002 to 11/02/02.
OR
You use a specialized time formating function like this
size_t strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr );
-Dominik
|
|
|
|
|
I was wondering if it is possible to add an menu item to the right-click popup menu in VC6.
I've taken a brief look at the WinTabs add-in (not it's code - the application itself), and it doesnt appear to put anything into the popup menu of the vc6 editor, the same goes for WorkspaceWhiz 2.12.
If there's a way - I'd love to have *any* information of ideas about how I could extend the popup.
Thanks!
--
John Clayton
|
|
|
|
|
hi
i am writing my own dialogbox for printsetup. i have the problem to set "dmFields" member in the DEVMODE structure for orientation and copies.how can i assign my values to these memebers. please help me. if i give
pDevMode->dmFields=DM_ORIENTATION
pDevMode->dmFields=m_orientation.(m_orientation contains either 1 or 0);
but it's not setting with my value
please give help
thank you
|
|
|
|
|
Hi
Usually if you set a breakpoint in your program and hit F5, the program ist being started and debugged, so that you can watch variables, return values etc. Until yesterday I always had a small floating window (toolbar) in debug mode, where I could jump to the next function, to the end of the function and so on. But I accidently hit the [x]-button on that window, so that it disappeared. How do I make it visible again? I use VC6.
I know this question is stupid, but I didn't find a menu entry for reactivating it yet
thanks in advance
modified 12-Sep-18 21:01pm.
|
|
|
|
|
ehhhhhh, not too sure what you mean but you could try in the View->Debug menu or you could try using the Step In, Step Out and Step Over F9,F10,F11 keys. It sounds like thats what you're trying to do at least.
|
|
|
|
|
It seemed you closed debug window. you can make it show again as follow:
1. click Tools/Customize...
2. Select Toolbars tab
3. check debug in Toolbars, it will show immediatly
good luck!
|
|
|
|
|
You are my hero of the day, thanks!
modified 12-Sep-18 21:01pm.
|
|
|
|
|
I have an application that uses a custom image format.
What I am trying to do is make it possible to switch to
'thumbnails' in an explorer window, and have it show the thumbnails,
or when selected show it as a preview in the left pane (just like JPG's
and GIF's do already). How do I go about doing this? Just register the file type? or do I need to fiddle with the .net system.drawing.image encoder class?
Thanks!
|
|
|
|
|
Forgot to Add: I REALLY want this custom fileformat to be openable by
the 'windows picture and fax viewer' as well.
|
|
|
|
|
|
the code is simple:
vector<int> ivec;
int ival;
while (cin >> ival)
ivec.push_back( ival );
when i run this program, provide input, say, 1 2 3 4 5 6,then, what key should i use to end input?
Thanks for your time!
|
|
|
|
|
You would have to define an exit code, for example 9999 which must be entered to exit. The code would look like:
vector ivec;
int ival;
cout << "Enter 9999 to break.";
while(cin >> ival)
{
if(ival == 9999) break;
ivec.push_back(ival);
}
The Control-C combination always works, but it breaks your complete program, so the code above is much better.
-Dominik
|
|
|
|
|
Homework's a bitch, isn't it?
Software Zen: delete this;
|
|
|
|
|
I am new TCP IP Programming
I have captured the IP Packets and HEADER information
But i unable to see data Part of packet can any one tell me how an see
data part of packet or where i can read about it
|
|
|
|