通告视图按钮在在哪

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)如何给对话框中的控件发送消息呢?Windows消息分类
以博文中介绍的那样,给Tab添加子对话框来显示Tab内容。那么如果这个子对话框中含有个CTreeCtrl控件,有个Button控件,我想要模拟给这两个控件发送消息,该怎么办呢?直接把给控件的消息给控件容器(控件的父窗口)是没有用的。为什么呢?首先要明白windows的消息分类:
Windows消息的分类
1. 标准消息(队列消息)
除WM_COMMAND之外,所有以WM_开头的消息都是标准消息,如WM_MOUSEMOVE、WM_LBUTTONUP、WM_KEYDOWN、WM_CHAR。
从CWnd派生的类都可以接收到这类消息。
Windows每次从系统消息队列移走一个消息,确定它是送给哪个窗口的和这个窗口是由哪个线程创建的,然后,把它放进窗口创建线程的线程消息队列。线程消息队列接收送给该线程所创建窗口的消息。线程从消息队列取出消息,通过Windows
把它送给适当的窗口过程来处理。除了键盘、鼠标消息以外,队列消息还有WM_PAINT、WM_TIMER
和WM_QUIT。
注意:标准消息并不需要我们指定处理函数名称,是默认的对应关系。
宏名称&&&&&&&&&&&&&&&&&&&&&&&&&
对应消息&&&&&&&&&&&&&&&&&&&&&&&
消息处理函数
ON_WM_CHAR&&&&&&&&&&&&&&
WM_CHAR&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ON_WM_CLOSE&&&&&&&&&&&&
WM_CLOSE&&&&&&&&&&&&&&&&&&&&&&&&&&OnClose
ON_WM_CREATE&&&&&&&&&&
WM_CREATE&&&&&&&&&&&&&&&&&&&&&&&&OnCreate
ON_WM_DESTROY&&&&&&&&&&
WM_DESTROY&&&&&&&&&&&&&&&&&&&&&OnDestroy
ON_WM_LBUTTONDO&&&&&&&&
WM_LBUTTONDOWN&&&&&&&&&&&&OnLButtonDown
ON_WM_LBUTTONUP&&&&&&&
&WM_LBUTTONUP&&&&&&&&&&&&&&&&&&&&
OnLButtonUp
ON_WM_MOUSEMOVE&&&&&&&&
WM_MOUSEMOVE&&&&&&&&&&&&&&&&&OnMouseMove
ON_WM_PAINT&&&&&&&&&&&&&
WM_PAINT&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
OnPaint&&&&&&&&
.........&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&............&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.......

2.命令消息
来自菜单、加速键或工具栏按钮的消息均是命令消息。
&&&&&这类消息都以WM_COMMAND形式呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数识别。从CCmdTarget派生的类都可以接收到这类消息,其wParam
记录着该消息来自哪一个菜单项目。
例如:ON_COMMAND(IDM_ABOUT,&&&
ON_COMMAND(IDM_FILENEW, OnFileNew)
ON_COMMAND(IDM_FILEOPEN, OnFileOpen)
ON_COMMAND(IDM_FILESAVE, OnFileSave)
...........

3.通告消息由控件产生的消息,例如按钮,列表框的选择等都会产生通告消息,目的是为了向其父窗口(通常是对话框)通知事件的发生。
这类消息是以WM_COMMAND或WM_NOTIFY形式呈现的。从CCmdTarget派生的类(如CDocument可以接受命令消息和通告消息,但不能接收标准消息(队列消息)),都可以接收到这类消息。
注意:由于CWnd类派生于CCmdTarget类,所以凡是从CWnd派生的类,他们既可以接收标准消息,也可以接收命令消息和通告消息。而对于从CCmdTarget类派生的类只能接收命令消息和通告消息,不能接受标准消息。
控件&&&&&&&&&&&&&
宏&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&消息处理函数
Button&&&&&&&&&&
ON_BN_CLICKED(&id&,&memberFxn&)&&&&&&&&&&
&&&&&&&&&&
ComboBox&&&&&&&
ON_CBN_DBLCLK(&id&,&memberFxn&)&&&&&&&&&
&&&&&&&&&&
Edit&&&&&&&&&&&&&&
ON_EN_SETFOCUS(&id&,&memberFxn&)&&&&&&
ListBox&&&&&&&&&
ON_LBN_DBLCLK(&id&,&memberFxn&)&&&&&&&&&
.........&&&&&&&&&&&&&
......................&&&&&&&&&&&&&...........
标准消息和非标准消息的区分:
标准消息:代有控制后后续操作;
非标准消息:只是简单提示。
MFC命令消息的路由:
AfxWndProc(替换了窗口过程函数)-&AfxCallWndProc-&WindowProc-&OnWnddMsg-&(如果是命令消息则调用O如果是通告消息则调用OnNotify)-&OnCmdMsg
那么通告消息到底是WM_COMMAND还是WM_NOTIFY呢?
解释一:WM_NOTIFY比WM_COMMAND
功能更强大,可以存储一些额外的信息,WM_COMMAND
并不被所有的控件所支持。
解释二:Edit,Button,ListBox等发送WM_COMMAND消息,ListView,Toolbar,Tree等编译时如果不联接comctl32.lib就通不过的。Common,Controls发送WM_NOTIFY消息,因为需要提供的信息更多。
给对话框中的控件发送消息:
想要给CTreeCtrl控件模拟发送一个TCN_SELCHANGE消息。
想要给CButton控件模拟发送一个BN_CLICKED消息。
由上面对windows消息的分类,我们得知,这两个消息都是通告消息。那是用&WM_COMMAND还是WM_NOTIFY呢?
根据上面的解释,我们使用
TCN_SELCHANGE--WM_NOTIFY ,BN_CLICKED--WM_COMMAND。
是不是这样呢?咱们参看MSDN:
TCN_SELCHANGE
TCN_SELCHANGE
&&& lpnmhdr =
(LPNMHDR) lP
Notifies a tab control's parent window that the currently
selected tab has changed. This message is sent in the form of a
No return value.
Address of an
structure. The hwndFrom member is the handle to
the tab control. The idFrom member is the child window
identifier of the tab control. The code member is
TCN_SELCHANGE.
由上看出TCN_SELCHANGE确实是以呈现的,它包含以一个结构体指针的形式包含在lParam中。
typedef struct tagNMHDR {
HWND hwndF
Contains information about a notification message.
Window handle to the control sending a message.
Identifier of the control sending a message.
Notification code. This member can be a control-specific
notification code or it can be one of the common notification
BN_CLICKED
The BN_CLICKED notification message is sent when the user clicks
a button. The parent window of the button receives this
notification message through the WM_COMMAND message.
BN_CLICKED
idButton = (int) LOWORD(wParam);
// identifier of button
hwndButton = (HWND) lP
// handle to button
由上看出BN_CLICKED确实是包含在WM_COMMAND 中的。
怎样把通告消息溶到WM_COMMAND 和&中呢?
&&& idCtrl =
&&& pnmh =
(LPNMHDR) lP
Identifier of the common control sending the message.
Address of an
structure that contains the notification code and
additional information.
WM_COMMAND wNotifyCode = HIWORD(wParam);
// notification code
LOWORD(wParam);&&&&&&&&
// item, control, or accelerator identifier
hwndCtl = (HWND)
// handle of control
组装参数:
LPARAM MAKELPARAM(
wLow,& // low-order word
& WORD wHigh& //
high-order word
DWORD MAKELONG(
wLow,& // low-order word of long
& WORD wHigh& //
high-order word of long value );
向控件发消息我们可以使用以下两个方法:&
LONG SendDlgItemMessage(
hDlg,&&&&&
// handle of dialog box
& int nIDDlgItem, //
identifier of control
Msg,&&&&&&
// message to send
wParam,& // first message
lParam&& // second message
LRESULT SendMessage(
hWnd,&&&&&
// handle of destination window
Msg,&&&&&&
// message to send
wParam,& // first message
lParam&& // second message
实例,验证成功:
&//模拟发送TCN_SELCHANGE消息
&nmhdr.code =
TCN_SELCHANGE;&&&&&&
&nmhdr.hwndFrom =
g_pMainDlg-&m_TabCtrl.GetSafeHwnd();&&&&&&
&nmhdr.idFrom=
g_pMainDlg-&m_TabCtrl.GetDlgCtrlID();
&::SendDlgItemMessage(g_pMainDlg-&m_hWnd,IDC_TAB1,WM_NOTIFY,MAKELONG(TCN_SELCHANGE,0),(LPARAM)(&nmhdr));&
//发送BN_CLICKED消息
::SendMessage(g_pMainDlg-&m_VNOnLine.m_hWnd,WM_COMMAND,MAKELPARAM(IDC_RANG_OFF,BN_CLICKED),(LPARAM)(::GetDlgItem(g_pMainDlg-&m_VNOnLine.m_hWnd,IDC_RANG_OFF)));
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。html倒计时按钮代码_百度知道
html倒计时按钮代码
页面是做通知跳转用的,强制内网跳转到通知页面,
设计要求:
5秒等待时间(有5秒倒计时显示)
等待时间内按钮的名字为:请阅读以上通知
5秒后。出现一个可以按的按钮。名为:点击返回刚才页面
点击按钮后能链接到跳转之前的链接上!
两个按钮要放...
我有更好的答案
&input&type=&button&&value=&倒计时&onClick=&timedMsg()&&&p&请阅读通告:&sdfljslkfjlksdjglkjsgdkljgkdjgsdlk&/p&&p&id=&showtime&&&/p&&script&type=&text/javascript&&var&c=5;var&t;function&timedMsg(){document.getElementById('showtime').innerHTML=c; if(c==0){
clearTimeout(t);
window.location.href=&url&;//为跳转地址 }else{ t=setTimeout('timedMsg()',1000); } c--;}&/script&//这样即可 &这是点击按钮开始倒计时,如果要是页面加载就开始的话,直接给body加onload事件即可
采纳率:55%
cn/htmldom/met_win_settimeout.com.asp" target="_blank">http://www你可以参考这个页面:<a href="http://www.w3school
能给出具体代码吗?我不是学网页编程的,看不懂!
这个是中文的,下面有实例具体代码的话,要看具体需求的
把中间那个按钮换成 到计时5秒,按钮显示名为:请阅读通告, 5秒后变成可以点击的 &点击返回刚才页面&
为您推荐:
其他类似问题
您可能关注的内容
倒计时的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 视图按钮在 的文章

 

随机推荐