在线请教~~~如何让CStatic控件获得键盘消息WM_KEYDOWN

xiaolizi 2006-07-25 04:47:10
问题:
class CMyStatic : public CStatic, 如何让CMyStatic获得键盘输入的消息响应?
光简单继承好像是不能获得键盘消息的。。。
...全文
411 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaolizi 2006-07-25
  • 打赏
  • 举报
回复


真相大白~~~~~

我在OnLButtonDown中加了句SetFocus(),就弄出来了~~~

键盘响应是要焦点滴,就是不知道为什么CStatic在默认的情况下不给焦点。。。

在此给所有回帖的同志鞠躬三次,以表谢意 ^_^ @_@ *_*

结贴了~~~
cleverwyq 2006-07-25
  • 打赏
  • 举报
回复
建议参考 WM_GETDLGCODE 消息
xiaolizi 2006-07-25
  • 打赏
  • 举报
回复

To cleverwyq(cleverman)
  补充一点,我是要在
void CExStatic::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
中处理键盘消息的
xiaolizi 2006-07-25
  • 打赏
  • 举报
回复
To cleverwyq(cleverman)
兄弟,谢谢你帮我测试,我用的是ModifyStyle(0, SS_OWNERDRAW|SS_NOTIFY);
不过不行,不知道还有哪儿没搞对。。。
xiaolizi 2006-07-25
  • 打赏
  • 举报
回复
To laiyiling
  用Button是可以响应键盘消息了,不过Button的Invalidate(),闪烁的厉害,原来的CStatic就要好很多。。。这个怎么弄啊,给点提示吧(我是用OwnerDraw的)

^_^
cleverwyq 2006-07-25
  • 打赏
  • 举报
回复
void CExStatic::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
ModifyStyle(0,SS_NOTIFY);
CStatic::PreSubclassWindow();
}
cleverwyq 2006-07-25
  • 打赏
  • 举报
回复
notify可以的啊,我试过了
xiaolizi 2006-07-25
  • 打赏
  • 举报
回复
呵呵
laiyiling说的挺有道理的,俺去弄个button试试看
^_^
Kudeet 2006-07-25
  • 打赏
  • 举报
回复
为什么Button可以响应键盘消息啊
==
为什么不把button叫static呢?两个不同的东西啊,你为什么不直接用CButton加上BS_FLAT呢
xiaolizi 2006-07-25
  • 打赏
  • 举报
回复
"应该需要有焦点才能响应键盘消息"
CStatic : public CWnd 
肯定有焦点啊
CButton : public CWnd
为什么Button可以响应键盘消息啊

^_^
mynamelj 2006-07-25
  • 打赏
  • 举报
回复
应该需要有焦点才能响应键盘消息,如果不行你就使用局部钓子吧
xiaolizi 2006-07-25
  • 打赏
  • 举报
回复
继承不行,
加了ModifyStyle(0, SS_OWNERDRAW|SS_NOTIFY);也不是不行,

如何才行?期待高手出现 ^_^
lixiaosan 2006-07-25
  • 打赏
  • 举报
回复
notify属性
jacklzw88 2006-07-25
  • 打赏
  • 举报
回复
继承不行?

15,975

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧