首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC鼠标双击后创建对话框有关问题

2012-01-15 
MFC鼠标双击后创建对话框问题1。那个对话框创建在窗口左上角,为什么鼠标移动时对话框背面的主窗口的东西(菜

MFC鼠标双击后创建对话框问题
1。那个对话框创建在窗口左上角,为什么鼠标移动时对话框背面的主窗口的东西(菜单、图标)会显示出来?

而且只要我双击那个对话框就会出错Assertion failure,调试break在ASSERT(m_hObject == NULL); // only attach once, detach on destroy

我在view 类里建的对话框对象和响应函数

2。我还有一个问题,我想在主窗口单击一行字后出现字体(只是那一段字,不是窗口所有字)被选中的效果,我用了RECT装字段,但是不知道怎么给RECT加背景颜色

不知道我的问题说清楚了没有,那位大虾帮我解释一下,小辈不胜感激

[解决办法]

探讨
回一楼:
1。我建的是MFC单文档功程,我的对话框就是在资源中加的。

我的想法是主窗口显示几段字,双击每段字都会跳出一个对话框,可以改变那段字的内容
用MYDialog dlg;dlg.Create(IDD MYDLG);建的对话框

2。我的窗口不想让用户直接编辑,通过以上方式改变窗口显示的值
我想问一下可编辑和不可编辑窗口分别怎么创建?谢谢

[解决办法]
1。我建的是MFC单文档功程,我的对话框就是在资源中加的。

我的想法是主窗口显示几段字,双击每段字都会跳出一个对话框,可以改变那段字的内容
用MYDialog dlg;dlg.Create(IDD MYDLG);建的对话框
-----------------------------------------
处理WM_LBUTTON消息,PtInRect()如果点击是文字区域,弹出对话框,上面放一个编辑控件用来修改文本。
假设你的视图类名字为CMyView,伪代码如下:
C/C++ code
//MYDialog .H文件class CMyView;class MYDialog : public CDialog{ ...public: MYDialog(CString strText, CWnd* pParent = NULL);private: CString m_strText; CMyView* m_pView;...}//MYDialog .CPP文件#include "MyView.h"MYDialog::MYDialog(CString strText, CWnd* pParent) : CDilalog(...){ m_strText = strText; m_pView = (CMyView*)pParent;}// OnInitDialog函数BOOL MYDialog::OnInitDialog(){ CDialog::OnInitDialog(); ... SetDlgItemText(IDC_EDIT1, m_strText1); ... return TRUE;}// 在EDIT框中修改文字之后,按OK改变界面上的文字BOOL MYDiloag::OnClickButtonOK(){ GetDlgItemText(IDC_EDIT1, m_strText); // 得到修改后的文本信息 m_pView->SetDrawText(m_strText);// 修改视图类中保存文本信息 CDialog::OnOK();}CMyView类 .H文件中class CMyView : public CView{ ...public: void SetDrawText(CString strText);private: CString m_strText; //显示在界面上的文字 ...}CMyView类 .CPP文件中void CMyView::SetDrawText(CString strText){ m_strText = strText; Invalidate();}void CMyView::OnDraw(CDC* pDC){ 。。。 CRect rect; GetClientRect(&rect); pDC->DrawText(m_strText, &rect, DT_CENTER|DT_VCENTER);} 

热点排行