|
Programm3r wrote: Is it possible to pause the thread or put it in a standby mode?
Along with what others said...
Use _beginthreadex as you can also specify a flag CREATE_SUSPEND which creates the thread in suspended mode.
|
|
|
|
|
excelent answer... and shame on me
thanks mate
|
|
|
|
|
super_ttd wrote: and shame on me
Why! Nothing to feel ashamed of.
|
|
|
|
|
thanks Nibu Babu Thomas
i tried it at home yesterday evening, and effectively, that's working as expected.
i have a subsidiary question. do you know how I could bold the MenuItem in a PopupMenu created with the following :
void CtestDlg::OnPopupMenu()
{
CMenu popup;
if (popup.CreatePopupMenu())
{
popup.AppendMenu(MF_STRING, 1, "Test Titre");
popup.AppendMenu(MF_SEPARATOR);
popup.AppendMenu(MF_STRING, 10, "menuItem1");
popup.AppendMenu(MF_STRING, 11, "menuItem2");
popup.AppendMenu(MF_STRING, 12, "menuItem3");
popup.EnableMenuItem(1, MF_GRAYED);
CRect rect;
m_popupMenu.GetWindowRect(&rect);
popup.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, rect.right+1, rect.top, AfxGetMainWnd());
popup.DestroyMenu();
}
}
|
|
|
|
|
super_ttd wrote: i have a subsidiary question. do you know how I could bold the MenuItem in a PopupMenu created with the following :
I don't think you can set menu item font to bold. Of course you can make an item as default which will in turn make that menu item a bold one.
It's a bad practice to set all menu items to bold. As per convention only a default menu item should have bold typeface.
Default menu font's are managed by windows itself. We can't do and we should not interfere with this process.
If it's a must for you to do this then create custom menu completely different from existing menu provided by windows as Microsoft office and visual studio has done.
|
|
|
|
|
hum, i didn't know about default menu items. i'll try that.
actually, what i have is a button, which pops up a popupMenu next to it when clicked.
On this menu, the first element is the name of the current application (grayed BTW), and the second element is a separator. only then follow the really clickable items.
I would like now to bolden the application title, but as you can understand, it will not be clickable, because grayed.
i don't know if setting it as the default item will work anyway, but i'll give it a try and i'll tell you.
thanks for your input dear.
|
|
|
|
|
super_ttd wrote: actually, what i have is a button, which pops up a popupMenu next to it when clicked.
On this menu, the first element is the name of the current application (grayed BTW), and the second element is a separator. only then follow the really clickable items.
I would like now to bolden the application title, but as you can understand, it will not be clickable, because grayed.
i don't know if setting it as the default item will work anyway, but i'll give it a try and i'll tell you.
Try this[^] article. I use this quite often.
|
|
|
|
|
Hi All,
i have a button "DISABLE", BUT i want to know when the user click it... is possible??
thanks in advanced
Raiz
|
|
|
|
|
Ing.Raiz82 wrote: is possible??
No.
|
|
|
|
|
Do you want to know if the user tried to activate the disabled button? If so, trap mouse messages like WM_MOUSEMOVE and WM_LBUTTONUP (not WM_LBUTTONDOWN - normal buttons activate on the release of the mouse button).
If you are worried about some other application sending you artificial button click messages (like the application that automatically dismisses the Outlook "something is trying to send email on your behalf" dialog), look for WM_COMMAND messages for that button, and if you know button's state when you last set it, you can determine if the message is real or not.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
thanks
... is a good idea...
now i try....
thanks
Raiz
|
|
|
|
|
Hi,
i create a Frame within a TabWnd. In the different Tabs, i place a View.
If i click on button on the view, i create dynammicaly a new View and replace it.
If the user wishes to close this new View, the old view returns.
The changing works nice, but i have trouble to close and delete the view.
I send a WM_CLOSE to the view and after this a delete :
LRESULT ViewTabWnd::CloseOld(WPARAM w, LPARAM l)
{
CWnd* Old = (CWnd*)w;
Old->SendMessage(WM_CLOSE);
delete Old;
return TRUE;
}
But at "delete Old" i have the error :
Last Trace : (<<<<<<< indicates the debug-trace )
void PASCAL CObject::operator delete(void* p)
{
#ifdef _AFX_NO_DEBUG_CRT
free(p);
#else
_free_dbg(p, _AFX_CLIENT_BLOCK); <<<<<<<<<
#endif
}
if (pHead->nBlockUse == _IGNORE_BLOCK)
{
_ASSERTE(pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ);
/* fill the entire block including header with dead-land-fill */
memset(pHead, _bDeadLandFill,
sizeof(_CrtMemBlockHeader) + pHead->nDataSize + nNoMansLandSize);
_free_base(pHead); <<<<<<<<<<<<<<<<<
RTCCALLBACK(_RTC_FuncCheckSet_hook,(1));
return;
}
Does anyone knows this problem ?
I'm confused
Thanks
|
|
|
|
|
Looks like pointer you are deleting is already deleted and dangled .
baerten wrote: LRESULT ViewTabWnd::CloseOld(WPARAM w, LPARAM l)
How this message/function is called ?
|
|
|
|
|
thanks
via a PostMessage
LRESULT ViewTabWnd::CloseOld(WPARAM w, LPARAM l)
{
CWnd* Old = (CWnd*)w;
Old->SendMessage(WM_CLOSE);
delete Old; << I step here, then via F10 i step into the destructor and then the error is launched
return TRUE; << i never step here
}
|
|
|
|
|
I found the error ...
It's a variable which has a wrong syntax, i wrote bool at place of BOOL
5 hours of recherche for nothing
Thanks anyway
|
|
|
|
|
baerten wrote: It's a variable which has a wrong syntax, i wrote bool at place of BOOL
Nice to see, your error is solved.
But, really cant understand how it affects your code. Can you show changes , you needed to make.
|
|
|
|
|
i changed only bool to BOOL.
bool isn't a MFC Datatype, but however it could create it ( bool is used in .NET )
But at the destruction of this datatype he had the error.
But only if i create the view dynamicaly. If i created the same view with a Frame via CreateView
the error doesn't occur.
So, i could step into the Destructor and after the destructor all variables will be destroyed
and there, he had the error
That was an error of kind "too fast typing and too much thinking in the C#-Way" LOL
|
|
|
|
|
baerten wrote: bool isn't a MFC Datatype
Its keyword in C++, so that should not be problem. Still confused. .
Why it was so ?
|
|
|
|
|
Hi,
I need to change the font size of CStatic ctrl.
How can do this ?
Thanks.
|
|
|
|
|
You can use of CreateFont and then use of SetFont And also see Nibu babu thomas answer to super_ttd (Strange Font bolding)
|
|
|
|
|
Look for LOGFONT-->lfHeight while creating font for static window.
|
|
|
|
|
See here.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi all,
I have made a worker thread like this
UINT workerThread(LPVOID pParam)
{
return 0;
}
i want to pass a CString parameter to my thread
how to do it n how to do AfxBeginThread for passing CString parameter.......
thanxs in advance
|
|
|
|
|
why not just calling like this :
CString str = _T("hello CP");
workerThread(&str);
from within the function, if you know you'll always get a CString, then use it like that :
UINT workerThread(LPVOID lpParam) {
CString str = *(static_cast<CString*>(lpParam));
return 0;
}
|
|
|
|
|
toxcct wrote: CString str = _T("hello CP"); workerThread(&str);
str is a local object right? Passing local objects to thread function is a bad practice and leads to disaster.
|
|
|
|