呵呵,翻箱倒柜找出我的宝贝来:
1、在资源中定义一个自画的按钮(Owner draw),假设ID为IDC_MYBUTTON
2、重载DLG的OnDrawItem函数,添加如下代码:
...
if(nIDCtl == IDC_MYBUTTON)
{
CBrush br(clrBack);
CRect rc;
GetDlgItem(IDC_MYBUTTON)->GetClientRect(rc);
CClientDC dc(GetDlgItem(IDC_MYBUTTON));
dc.FillRect(rc, &br);
br.DeleteObject();
}
else
CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
...
以上代码是我现在一段程序中用的,应该没什么问题。
另外,如果你还要设置按钮形状(PPMM形?),应该使用SetWindowRgn函数,
可以在OnInitDialog中调用。不过我没有试过:)