Notification Bubble with Text Input Control.(MFC)

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

hi all,

i have wrote a notification bubble with text input control for user to input there email.(MFC)

Code:

#define IDS_DEFAULTHTMLMESSAGE _T("<html><body><form id='ads' name='ads' action=''><p> pls input your email <input type='text' name='email'><input type='button' name='cmd:10' value='Ok' ></p></form></body></html>");

pndAdd = (SHNOTIFICATIONDATA*)malloc(sizeof(SHNOTIFICATIONDATA));

pndAdd->dwID = 4711;

pndAdd->clsid = guidPPCAlertsApp;

pndAdd->npPriority = SHNP_INFORM;

pndAdd->csDuration = 20;

pndAdd->hwndSink = this->m_hWnd

pndAdd->pszHTML = IDS_DEFAULTHTMLMESSAGE;

pndAdd->hicon = m_hNotifactionIcon;

pndAdd->cbStruct = sizeof(SHNOTIFICATIONDATA);

pndAdd->pszTitle = IDS_DEFAULTTITLE;

pndAdd->grfFlags = SHNF_FORCEMESSAGE;

SHNotificationAdd(pndAdd);

........

as we known, we use WM_COMMAND to handle Command Button Click,but when we got the click, how should i do for getting the text that user input in the html control?

Code:

BOOL CPOutlookTestDlg::OnCommand(WPARAM wParam, LPARAM lParam)

{

if(wParam==10){

SHNotificationRemove(&guidPPCAlertsApp, 4711);

delete pndAdd;

return true;

}

return CPOutlookTestDlg::OnCommand(wParam,lParam);

}

thanks.

seaman

When you call SHNotificationAdd the call is asynchronous and the return value indicates if the notification was successfully added.

To receive return values from the notification bubble itself there are several ways.

1. Most bubbles have buttons, as in the example:

<input type=button name='cmd:10' value='Ok'>

In this case when the user clicks the 'OK' button your sink window will receive a WM_COMMAND with a wParam of 10

2. Bubbles may also contain links which will send you a WM_COMMAND as well - from the example:

<a href=\"cmd:11\">Test Link</a>

3. Finally you can have a form in your HTML and have it submitted back to your sink window. The msdn example doesn't appear to show this properly but here's an example:

<form method='get' action='TestBubble://Test'><table width=100% cellspacing=0 cellpadding=0><tr><td colspan=2><b>Choose a fruit:</b><p><input type='radio' value='0' id='Apples' checked name='Fruit'><label for='Apples'>Apples</label><br><input type='radio' value='1' id='Oranges' name='Fruit'><label for='Oranges'>Oranges</label></p></td><td><input type='submit' value='Submit' name='Submit'></td></tr><tr><td width=42%%><a href='cmd:12288'>Settings</a></td></tr></table></form>"

When the submit button is pressed your sink window will receive a WM_NOTIFY with a NMSHN structure:

typedef struct _NMSHN

{

NMHDR hdr;

LPARAM lParam;

DWORD dwReturn;

union

{

LPCTSTR pszLink;

BOOL fTimeout;

POINT pt;

};

} NMSHN;

typedef struct tagNMHDR

{

HWND hwndFrom;

UINT idFrom;

UINT code; // NM_ code

} NMHDR;

typedef NMHDR FAR * LPNMHDR;

The hdr.code member will be SHNN_LINKSEL; the pszLink member will contain the URL encoded form submission - eg "TestBubble://Test?Fruit=Apples" and wParam will contain the dwID of the notification (useful if you have multiple notifications of the same type)

Tim

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航