m_pButton =new C3DTextButton;
m_pButton->Create(_T ("Title "), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(400,400,500,424),this,IDC_MYBUTTON);利用以上代码,可以显示一个标准风格的Button,但是我想实现自己设置风格的Button,
C3DTextButton是派生的新的类DrawItem和Draw虚函数已经修改了。但是怎么把Button设置为OWNERDRAW属性?
我用
GetDlgItem(IDC_MYBUTTON)->ModifyStyle(0,BS_OWNERDRAW,0);
或m_pButton->Create(_T ("Title "), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,CRect(400,400,500,424),this,IDC_MYBUTTON);
都不行,编译能通过,但运行时会出错。
有谁这样用过?请指点!!
//获得控件的字体
CFont* pFont=GetFont();
//确定所选字体有效高度和宽度
LOGFONT logfont;
pFont->GetObject(sizeof(LOGFONT),&logfont);
用Debug调试到最下面一句时出错了,请大家指点.
CButton::DrawItem里面只有ASSERT(FALSE);如果调用就会出错。
但是我是在View中动态生成Button时就不行了。我照onemore的说法做了,然后使用语句m_pButton->Create(_T ("Title "), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,CRect(400,400,500,424),this,IDC_MYBUTTON);
这时候显示的Button是个空白的,要再加入什么语句,怎么才能在上面显示文本?