simplesingle 2013-12-31 01:49
浏览 951

MFC自定义消息运行第二遍时获取窗口失败

//按钮事件
void CircleDialog::OnBnClickedOk()
{

UpdateData(TRUE);
MsgParam param;
param.radius=r;
param.colorref1=color1.GetColor();
param.colorref2=color2.GetColor();
CMainFrame *pMainFrm=(CMainFrame*)AfxGetMainWnd();
CView *pView=pMainFrm->GetActiveView();
pView->SendMessage(WM_MYMSG,(WPARAM)&param,NULL);
CDialogEx::OnOK();

}
//消息响应函数
LRESULT CSimplePaintView::OnMyMessage(WPARAM wParam,LPARAM lParam){
MsgParam myParam=(MsgParam)wParam;
cr=myParam->radius;
lineColor=myParam->colorref1;
bgColor=myParam->colorref2;
m_rect.left=100;
m_rect.top=100;
m_rect.right=100+2*cr;
m_rect.bottom=100+2*cr;
m_pen.CreatePen(PS_SOLID,5,lineColor);
m_brush.CreateSolidBrush(bgColor);
UpdateData(FALSE);
Invalidate();
return 0;
}
//声明消息响应函数
protected:
afx_msg void OnFilePrintPreview();
afx_msg void OnRBut
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg LRESULT OnMyMessage(WPARAM wParam,LPARAM lParam);
DECLARE_MESSAGE_MAP()
//消息映射

BEGIN_MESSAGE_MAP(CSimplePaintView, CView)
// 标准打印命令

ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CSimplePaintView::OnFilePrintPreview)
ON_WM_CONTEXTMENU()
ON_WM_RBUTTONUP()
ON_COMMAND(ID_CIRCLE, &CSimplePaintView::OnCircle)
ON_COMMAND(ID_RECT, &CSimplePaintView::OnRect)
 **ON_MESSAGE(WM_MYMSG,OnMyMessage)** 

END_MESSAGE_MAP()
//定义宏
#define WM_MYMSG WM_USER+100

// 运行到第二遍时,pView下的指针(m_hWnd之类的)无法读取内存,但是点忽略后能继续运行。。

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 本题的答案是不是有问题
    • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
    • ¥15 C++使用Gunplot
    • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
    • ¥15 matlab数字图像处理频率域滤波
    • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
    • ¥15 ELGamal和paillier计算效率谁快?
    • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
    • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
    • ¥15 Arcgis相交分析无法绘制一个或多个图形