我想在一个RichEdit的类里拦截WM_PAINT消息,应该做哪些步骤?在MessageMAP里写了,然后定义了响应函数,还有什么,比如BeginPaint和EndPaint?
还需要调用什么函数?不太懂
还需要调用什么函数?不太懂
解决方案 »
- 求高手解答:MFC编辑框控制问题
- 如何把一个隐藏窗口显示到前台
- vc++ win32 移动窗口到桌面中间
- VS2005能不能一次性把所有项目命令行都加上参数?
- Help!Help! 老大马上就要来检查了 SDK建立的一个简单时钟界面
- MFC用链表存储一个对象的时候,链表到底存了些什么数据?变量?函数?或者是其它?
- 在MFC开发的ActiveX控件中,ActiveX控件与其属性页是怎么传递消息的?高手请进!!
- unicode下的换行符应该怎样写入文件中
- CHtmlView如何得到网页某个链接坐标,然后鼠标移动坐标,模拟点击它?
- 救命,我快死了,你们要多少分都行。
- 当读取一个文件,读到尾的时候,如何不关闭文件从头再读一遍
- 知道了processid如何获得handle of the window
{
//Do my own code here:
}
1.因为RichEdit控件为OLE对象,需要对OLE初始化,才能正确使用,在InitInstance()下一定对OLE进行初始化。即:
BOOL CRichTextApp::InitInstance()
{
AfxEnableControlContainer();
AfxInitRichEdit( ); //加入此句,顺序在上面也可以的
.....................
}
2.定义PreTranslateMessage()函数,其内容如下:
BOOL CButtonDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class if( pMsg->message == WM_PAINT)//鼠标单击事件
{
HWND hWnd = ::GetFocus(); //取得获得焦点的控件ID
int iID = ::GetDlgCtrlID(hWnd);
if(iID == IDC_RICHEDIT3);//IDC_RICHEDIT3是
对话框中RichEdit控件的ID号
{
MessageBox("fsad");
}
} return CDialog::PreTranslateMessage(pMsg);
}