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

如何没法发送消息?或者不响应

2012-01-12 
怎么没法发送消息?或者不响应 做了一个简单的对话框类,在上面放一个按钮,和一个STATICTEXT.打算按下按钮时

怎么没法发送消息?或者不响应

做了一个简单的对话框类,在上面放一个按钮,和一个STATIC   TEXT.打算按下按钮时候,发送WM_CTLCOLOR消息给对话框,然后调用HBRUSH   CTextStaticDlg::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor)   重画STATIC   TEXT.可是不知道为什么不行,this指针编译没问题,可是不能达到目的,而HWND_BROADCAST也不行,反而还影响其他正在运行的程序!!怎么解决啊,帮帮忙!!

void   CTextStaticDlg::OnButton1()  
{
//   TODO:   Add   your   control   notification   handler   code   here

if(m_count=2)m_count=0;
//::PostMessage((HWND)this,WM_CTLCOLOR,NULL,NULL);
::SendMessage(HWND_BROADCAST,WM_CTLCOLOR,NULL,NULL);
AfxMessageBox( "bbbbbbbbbbbbbbbb ");
}

HBRUSH   CTextStaticDlg::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor)  
{
HBRUSH   hbr   =   CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);

//   TODO:   Change   any   attributes   of   the   DC   here

//   TODO:   Return   a   different   brush   if   the   default   is   not   desired
if(pWnd-> GetDlgCtrlID()==IDC_STATIC1)
{
if(m_count==0)
{
pDC-> SetBkColor(RGB(255,0,0));
pDC-> SetTextColor(RGB(0,255,0));
}
else
{
pDC-> SetBkColor(RGB(0,0,255));
pDC-> SetTextColor(RGB(0,255,0));

}
}

return   hbr;
}

[解决办法]

void CTextStaticDlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_count++;
m_count = m_count % 2; //效果与你下面if语句相同
//if(m_count==2)m_count=0;

//Invalidate()会发送窗口重绘的消息,每次重绘,OnCtlColor()函数都会
//被调用
Invalidate();
}

HBRUSH CTextStaticDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

// TODO: Return a different brush if the default is not desired
if(pWnd-> GetDlgCtrlID()==IDC_STATIC1)
{
if(m_count==0)
{
pDC-> SetBkColor(RGB(255,0,0));
pDC-> SetTextColor(RGB(0,255,0));
}
else
{
pDC-> SetBkColor(RGB(0,0,255));
pDC-> SetTextColor(RGB(0,255,0));

}
}

return hbr;
}

热点排行