荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: scanf (carefully), 信区: SoftDev
标  题: [合集]请问:如何判断哪个Button按下
发信站: 荔园晨风BBS站 (Tue Jun 22 18:57:47 2004), 站内信件

qyf (奋起) 于Fri Jun 18 11:00:20 2004提到:

   CMyButton继承了CButton类,并增加了OnLButtonDown消息处理函数,
之后创建了n个CMyButton类的对象,如m_btn1,m_btn2......

   现在我想在左键按下某个按钮时,判断是哪个按钮对象按下,在
OnLButtonDown中对不同Button作不同的处理。请问我该怎么做?是要
把m_btn1......控件ID传给OnLButtonDown函数吗?如何传?

   谢谢了 :)


LAWMAN (泡着茶看风景) 于Fri Jun 18 11:40:35 2004提到:

单片机好像有讲到这个方面的


qyf (奋起) 于Fri Jun 18 12:00:09 2004提到:

  VC界面的问题,没有用到单片机



LAWMAN (泡着茶看风景) 于Fri Jun 18 12:21:04 2004提到:

去program版问一下看


littlebao (爱拼才会赢) 于Fri Jun 18 12:44:16 2004提到:

方法很多
1.
GetWindowRect()得到按钮得位置然后用
PtInRect测试点击点在那个按钮
CRect rect ;
GetWindowRect(&rect) ;
if(rect.PtInRect(point))
   AfxMessageBox("ok") ;

2.
或者添加一个变量flag,在对话框里添加消息预处理函数PreTranslateMessage()
截或WM_LBUTTONDOWN,然后用
pMsg->hwnd==GetDlgItem(ID_BUTTON)->GetSafeHwnd()
判断是按下了那个按钮,然后对flag赋值,然后在按钮得WM_LBUTTONDOWN里判断flag值

3.
还有就是自定义消息,当按下按钮时发送消息,并且把按钮得id绑在消息里
然后在消息处理函数里用switch判断是那个id按下了左键。



qyf (奋起) 于Fri Jun 18 12:59:17 2004提到:

   谢谢 :)

   我想到的是第三种方法,在消息里绑定button id,然后switch处理。就是
不知道怎样绑定 :(

            只是判断是否点击了吧?没有返回值?

                                                    ~~~~~~~~~~~~~~
                                              在OnLButtonDown里?



littlebao (爱拼才会赢) 于Fri Jun 18 14:48:45 2004提到:

如果是绑定得话就不用在你得类里添加WM_LBUTTONDOWN处理得,
你可以把id绑定到WPARAM里,

        你要对每个得按钮都作判断,是在你得类得左键消息里判断不需要返回值
                                        就在你得类得OnLButtonDown里


qyf (奋起) 于Fri Jun 18 16:59:03 2004提到:

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          能解释一下吗?



littlebao (爱拼才会赢) 于Fri Jun 18 17:04:06 2004提到:

MSG结构里包含了发送消息得按钮得句柄,用他与按钮得句柄比较就
可以知道是那个按钮发出得WM_LBUTOONDOWN



qyf (奋起) 于Fri Jun 18 17:22:20 2004提到:

    flag 怎么传到OnLButtonDown?



littlebao (爱拼才会赢) 于Fri Jun 18 17:28:23 2004提到:

全局变量或者在对话框定义然后在函数里(CYourDlg*)GetPanrent()->flag ;
 其实用第一种方法最好了



qyf (奋起) 于Fri Jun 18 20:05:14 2004提到:

   还是有点麻烦,呵呵,有问题明天再请教..........


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店