Notification Bubble with Text Input Control.(MFC)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值