IPBX_VisualObject interface:
GetEventID method
Description
Returns the identifier of an event when the window's
parent is notified that the event occurred.
Syntax
GetEventID(HWND hWnd, uint iMsg, WPARAM wParam, LPARAM lParam)
Argument
|
Description
|
hWnd
|
The handle of the parent window.
|
iMsg
|
The message sent to the parent.
|
wParam
|
The word parameter of the message.
For WM_COMMAND, the high-order
word specifies: The notification code if the
message is from a control
1 if the message is from an accelerator
0 if the message is from a menu.
The
low-order word specifies the identifier of the control, accelerator,
or menu.
For WM_NOTIFY, this parameter
contains the identifier of the control sending the message.
|
lParam
|
The long parameter of the message.
For WM_COMMAND, this parameter
contains the handle of the control sending the message if the message
is from a control. Otherwise, this parameter is null.
For WM_NOTIFY, this parameter
contains a pointer to a structure.
|
Return Values
Integer.
Examples
In this example, the GetEventID function
returns the identifier PB_BNCLICKED if
a WM_COMMAND message with the notification
code BN_CLICKED was sent. It returns
the identifier PB_ENCHANGE if a WM_NOTIFY message
was sent; otherwise it returns PB_NULL.
TCHAR CVisualExt::s_className[] = "PBVisualExt";
LPCTSTR CVisualExt::GetWindowClassName()
{
return s_className;
}
HWND CVisualExt::CreateControl
(
DWORD dwExStyle, // extended window style
LPCTSTR lpWindowName, // window name
DWORD dwStyle, // window style
int x, // horizontal position of window
int y, // vertical position of window
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // handle of parent or owner window
HINSTANCE hInstance // handle of application instance
)
{
d_hwnd = CreateWindowEx(dwExStyle, s_className,
lpWindowName, dwStyle, x, y, nWidth, nHeight,
hWndParent, NULL, hInstance, NULL);
::SetWindowLong(d_hwnd, GWL_USERDATA, (LONG)this);
return d_hwnd;
}
int CVisualExt::GetEventID(
HWND hWnd, /* Handle of parent window */
UINT iMsg, /* Message sent to parent window*/
WPARAM wParam, /* Word parameter of message*/
LPARAM lParam /* Long parameter of message*/
)
{
if (iMsg == WM_COMMAND)
{
if ((HWND)lParam == d_hwnd)
{
switch(HIWORD(wParam))
{
case BN_CLICKED:
return PB_BNCLICKED;
break;
}
}
}
if (iMsg == WM_NOTIFY)
{
return PB_ENCHANGE;
}
return PB_NULL;
}
Usage
This function is used to process Windows messages, such as WM_COMMAND and WM_NOTIFY, that
are sent to the parent of an object and not to the object itself.
Such messages cannot be caught in the visual extension's
window procedure. The PBVM calls GetEventID to
process these messages.
If the message is mapped to a PowerBuilder event, GetEventID returns
the event's identifier, for example PB_BNCLICKED,
and the event is fired automatically. PowerBuilder event token identifiers
are mapped to unsigned integer values in the pbevtid.h header
file. The identifiers in pbevtid.h are associated
with PowerBuilder event token names. For example, the identifier PB_BNCLICKED is
associated with the token name pbm_bnclicked.
If the message is not mapped to an event, GetEventID returns
the value PB_NULL and the message is
discarded.
See Also