您的位置:程序门 -> vc/mfc -> 界面



關於button,有一個問題想請教


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


關於button,有一個問題想請教
发表于:2007-05-18 13:37:19 楼主
各位好:

當鼠標移到button上時,

有什麼消息可以測出來嗎?

我是使用win32   api   編程

沒有使用mfc,button是定義在資源檔中.

发表于:2007-05-18 13:59:331楼 得分:0
可不可以这样
处理wm_mousemove   这个消息
得到鼠标的坐标,用ptinrect判断这个坐标在不在button的rect里面。
发表于:2007-05-18 15:19:112楼 得分:0
謝謝!     我會去試試看
发表于:2007-05-18 15:21:153楼 得分:0
我有3态按钮的代码   api的   要的话给我发邮件   r2010000hyq@126.com
发表于:2007-05-22 11:48:044楼 得分:0
再請教一下,要如何取得button的rect呢?
发表于:2007-05-22 13:30:365楼 得分:0


hwnd   hbutton   =   getdlgitem(idc_button1)
long   loldproc   =   getwindowlong(hbutton,   gwl_wndproc);
setwindowlong(hbutton,   gwl_wndproc,   lnewproc);
setwindowlong(hbutton,   gwl_userdata,   loldproc);

大概就是用以上方法把按钮的控制转移到lnewproc的窗口函数中.

然后在lnewproc中对wm_mousemove进行处理.
发表于:2007-05-22 13:34:176楼 得分:0
void   cdvsdlg::onmousemove(uint   nflags,   cpoint   point)  
{
rect   rc;
cdialog::onmousemove(nflags,   point);

getdlgitem(idc_button1)-> getwindowrect(&rc);
screentoclient(&rc);
if(ptinrect(&rc,point)){.....}
}
发表于:2007-05-22 16:49:137楼 得分:0
继承cbutton写一个button的类,接收   wm_nchittest消息
class   cbuttonex   :   public   cbutton
{
...

declare_message_map()
public:
afx_msg   lresult   onnchittest(cpoint   point);
}
...
begin_message_map(cbuttonex,   cbutton)
...
on_wm_nchittest()
end_message_map()


lresult   cbuttonex::onnchittest(cpoint   point)
{
//   todo:   add   your   message   handler   code   here   and/or   call   default

return   cbutton::onnchittest(point);
}
当鼠标移动到这个button上时,就会响应这个消息。
发表于:2007-05-27 16:01:238楼 得分:0
兄弟     我给你会了  
但是系统退信
麻烦给我再发一边


快速检索

最新资讯
热门点击