关于RichEdit窗口的子类化,部分消息无法接收的问题

dens 2005-09-01 11:19:40
本人写了一个Win32 SDK程序单文档程序,并创建一个RichEdit子窗口,使用SetWindowLong把自已写的一个窗口函数替换成原RichEdit的窗口函数,但此时存在问题,部分的RichEdit窗口消息,我写的那个窗口过程函数接收不到,比如说,在RichEdit窗口中按下鼠标并拖动,正常情况下是选定文本,但使用SetWindowLong安装自定义的窗口函数后,对鼠标消息就都没有反应,我在消息循环中设置断点:
while(GetMessage(&msg, NULL, 0, 0)
{
if(msg.message == WM_LBUTTONDOWN)
{
MessageBox(NULL, "WM_LBUTTONDOWN", "MSG", MB_OK);
}

TranslateMessage(&msg);
DispatchMessage(&msg);
}

根本就捕捉不到WM_LBUTTONDOWN消息,不知是哪位是否知道是何原因?
}
...全文
143 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dens 2005-09-02
  • 打赏
  • 举报
回复
呵呵,终于弄明白了,原来是要注册一个窗口类
dens 2005-09-02
  • 打赏
  • 举报
回复
是的,但问题是自定义的窗口函数根本就没有接收到这个消息,GetMessage的消息循环中都没接收到这个消息,也就是说系统根本没有把这个消息放入这个程序的消息队列中
goodboyws 2005-09-02
  • 打赏
  • 举报
回复
SetWindowLong安装自定义的窗口函数,消息处理后应该再调一下RichEdit本身的处理
handsomerun 2005-09-02
  • 打赏
  • 举报
回复
不用注册吧
用SetWindowLong替换就可以了啊…………

这都是windows带的,不用你自己注册了吧
lixiaosan 2005-09-02
  • 打赏
  • 举报
回复
没注册窗口??我晕。。纳开始怎么能运行成功
goodboyws 2005-09-02
  • 打赏
  • 举报
回复
不是吧

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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