|
Thanks a Lot i got it
"The thought that Guids ur intelligence in more important than how intelligent u r "
|
|
|
|
|
Can anybody tell me how can i call the member function of one class through the other class using Send/Post Message?
Vidya
|
|
|
|
|
2 ways that I am aware of.
1 make the member function static and call it as CMYCLASS::Memberfunction(...) on the message handler for the posted message.
2. In the message paramneter cast the this pointer ta a long and pass it with the message. Cast it back to the class in the message handler. I think this breaks some of the concepts of proper OO
tcss
|
|
|
|
|
Hello,
In stdafx.h put the following stuff
#define WM_TALELE_CLICK 3000
..
..
..
---------------------------------------------------------------------------
then in XYZ.CPP put following stuff
.
GetParent()->PostMessage(WM_TALELE_CLICK,m_id,0); //e.g m_id is paramater to be passed
.
.
.
---------------------------------------------------------------------------
Implementation.h
void OnTaleleBtnClick(WPARAM wp, LPARAM lp);
---------------------------------------------------------------------------
then in Implementation.cpp
BEGIN_MESSAGE_MAP(CIMP, CXyz)
ON_MESSAGE(WM_STATICBTN_CLICK, OnTaleleBtnClick)
END_MESSAGE_MAP()
void CIMPL::OnTaleleBtnClick(WPARAM wp, LPARAM lp) //wp ==m_nID
{
switch(wp)
{
case NEWS_BTN:
::MessageBox(0,"Newsx btn","News",0); break;
case ALERT_BTN:
::MessageBox(0,"Alert btn","News",0); break;
default : break;
}
}
---------------------------------------------------------------------------
you are done..... I had actually implemented...and executed successfully, dear vidya
regards
Balkrishna Talele
|
|
|
|
|
Technically, you can't use SendMessage() or PostMessage() to call functions. The message handler can, however.
#define PM_STARTPROC 123
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
ON_MESSAGE(PM_STARTPROC, OnStart)
END_MESSAGE_MAP()
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
PostMessage(PM_STARTPROC);
return TRUE;
}
LRESULT CMyDialog::OnStart( WPARAM wParam, LPARAM lParam )
{
return (0);
}
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Hey
I have an icon. I would like to insert the icon into a toolbar.How to do?
Thanks
JP
|
|
|
|
|
Insert an icon means to insert a new toolbar button if so use TB_INSERTBUTTON message to do it.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Use...
TB_INSERTBUTTON
AddButton(...);
which has following paramater
HRESULT AddButtons(
int nButtons, // number of buttons
LPMMCBUTTON lpButtons // pointer to an MMCBUTTON structure
);
LPMMCBUTTON .....
typedef struct _MMCBUTTON
{
int nBitmap ;
int idCommand;
BYTE fsState;
BYTE fsType;
LPOLESTR lpButtonText;
LPOLESTR lpTooltipText;
} MMCBUTTON;
typedef MMCBUTTON* LPMMCBUTTON;
regards
Balkrishna Talele
|
|
|
|
|
access violation 0xC0000005 when calling func in dll
hi,guys:
ask for your kind help. thanks in advance.
typedef int (WINAPI * _DLL_FOO)(int, char **, int, char **, LPDCL, LPUSERFUNCTIONS);
......
_DLL_FOO m_PFoo;
......
LoadLibrary successfully。
m_PFoo = (_DLL_FOO)GetProcAddress(m_hDll, "Foo"); //successfully
326: retval = (*m_PFoo)(infc, infv, exfc, exfv, m_lpDCL, m_lpUserFunctions);
004440D2 mov esi,esp
004440D4 mov eax,dword ptr [ebp-4]
004440D7 mov ecx,dword ptr [eax+0B8h]
004440DD push ecx
004440DE mov edx,dword ptr [ebp-4]
004440E1 mov eax,dword ptr [edx+0BCh]
004440E7 push eax
004440E8 mov ecx,dword ptr [ebp-10h]
004440EB push ecx
004440EC mov edx,dword ptr [ebp-8]
004440EF push edx
004440F0 mov eax,dword ptr [ebp-14h]
004440F3 push eax
004440F4 mov ecx,dword ptr [ebp-0Ch]
004440F7 push ecx
004440F8 mov edx,dword ptr [ebp-4]
004440FB call dword ptr [edx+0B0h] <== here access violation 0xC0000005
00444101 cmp esi,esp
00444103 call __chkesp (00451fa0)
00444108 mov dword ptr [ebp-11Ch],eax
327:
when failure edx+0B0h == 0x009796b0
009796b0:B0 D4 11 02 CD CD CD CD 38 7B 14 00 78 A4 14 00 00 00 11 02 CD CD CD CD 38 7B 14 00 78 A4 14 00
The address of func m_PFoo is 0x0211D4B0, it's all right.
What 's the problem with my program and how to fix it ?
Thank you very much !
|
|
|
|
|
I don't think you need that pointer to call the function since it's already a pointer, so 326 becomes:
retval = (m_PFoo)(infc, infv, exfc, exfv, m_lpDCL, m_lpUserFunctions);
|
|
|
|
|
Hello,
I have some questions about declare functions, when I declare a function,
what is the different between
const char* f();
and
char* const f();
Thank for your help!
Nachi
|
|
|
|
|
|
I am using a message box in my application. When it appears and I click OK, it hangs my application. I am running in debug mode, and I have to stop debugging to recover.
I would like to have a modeless message box where the user does NOT need to press any buttons in response to the message box. All the message box would do is notify the user that some event has occured. Can some one help me with such a message box?
Jerry
|
|
|
|
|
Not possibe to hae modeless message box, one thing you can do is press F5 and put a breakpoint after the messagebox.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Indeed, It is Possible,
You might have surfed CP..then you must have seen this stuff
"Balloon Help as a non-modal replacement for MessageBox() " by Shog 9
Just click this
URL http://www.codeproject.com/miscctrl/balloonhelp.asp?target=Balloon
regards
Balkrishna Talele
|
|
|
|
|
Did you realise that his program hangs when he is debuging the application? will you replace some implementation just because it is not functioning while steping through the code ???
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Indeed, It is Possible,
You might have surfed CP..then you must have seen this stuff
"Balloon Help as a non-modal replacement for MessageBox() " by Shog 9
Just click this
URL http://www.codeproject.com/miscctrl/balloonhelp.asp?target=Balloon
I think this is what you need....
regards
Balkrishna Talele
|
|
|
|
|
Hi
I want to create a msi package for a vc++ application. How can I create it from scratch
|
|
|
|
|
What is that "msi"?????????
|
|
|
|
|
MSI is windows installer file.
|
|
|
|
|
I paint on a dialog with an DC-Pointer (e.g. lines, circles, points...)
how to restore the dialog without the painted things. Is there an easy function that restors the old surface...?
|
|
|
|
|
Use a memory DC and take a snapshot of the surface using BitBlt may be, and then paint on the dialog. To restore surface, you just have to call BitBlt again, but this time using memory DC as the source.
Gurmeet S. Kochar
If you believe in God, it's because of the Devil
|
|
|
|
|
Hi all!
I've a problem, and I didn't find any solution for it anywhere.
I've a dialog based app, which creates a CPropertySheet when a button clicked. I add pages to the sheet, then I call its DoModal.
The pages are derived from CPropertyPage. I've special pages, those put another window objects onto the page in OnInitDialog (I get some HWNDs, and then call ::SetParent(child_hwnd,GetSafeHwnd().
The window objects all have the WS_CHILD style, so the setparent works fine, the newly added child windows appears on the pages.)
Everything goes fine until I press OK.
I've debugged a bit, and found out that the code hangs, when the CPropertySheet's DoModal reaches a SetActiveWindow call. (When it wants to set the parent window as the active window again).
I did a not too nice trick: the main dialog catches the WM_ACTIVATE and doesn't call the DefWindowProc while the PropertySheet is visible. It worked, but I think there is a better solution.
Thanks in advance!
|
|
|
|
|
Created and editable CListCtrl.
Trying to subclass CDateTimeCtrl - unable to handle using VK_TAB and forcing the subclassed control to lose focus and destroy itself.
Reasoning: When using the drop-down, obviously, CDateTimeCtrl loses focus, but can't figure out how to keep control visible until all user intervention is complete - or naturally, it loses focus to the next column, or other object.
I tried overiding OnKillFocus:
void CdtkDate::OnKillFocus(CWnd* pNewWnd)
{
CDateTimeCtrl::OnKillFocus(pNewWnd);
CMonthCalCtrl* pMonCalCtrl = this->GetMonthCalCtrl();
// But CMonthCalCtrl doesn't get focus until the user selects it,
// Even though it is visible - should I force this focus?
if(pNewWnd->m_hWnd == pMonCalCtrl->m_hWnd)
return;
DestroyWindow();
}
This Class will not always destroy itself - and I get an error when the application instance is terminated.
Any suggestions will be appreciated.
|
|
|
|
|
Hi,
The below works ok for resizing a control within a window but a side effect is that the when resizing the main window I have to left click the mouse again to release the resizer, how do I make it auto release? (it auto releases the resizer when not using MoveWindow)
Thanks,
HOBNOB
void CConcatDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
RECT r;
GetWindowRect(&r);
if(r.top!=0)
if(m_list) m_list.MoveWindow(0, 55, r.right-r.left-7, r.bottom-r.top-130,TRUE);
}
|
|
|
|
|