C++MFC高手,进!
问三个C++的问题:(1)有一个按钮IDC_BUTTON,其值为m_pbutton,在OnSize()函数中要如何控置它的大小?我想要把它做成跟窗口同大的按钮,谢谢!(2) 有一个SPIN按钮(也就是上下翻按钮)IDC_SPIN,其值为m_pspin,要如何确定究竟按下的是向上还是向下?(3)建立一个单文档程序后,会自动生成一个带菜单、工具栏的程序,那么,如何把这个程序的菜单删除呢?(工具栏我已经能够删除,不要告诉我用DIALOG程序)谢谢!
参考答案:其实这3个问题按照难易可以这样的解决:
首先解决最为简单的一个问题:第三题
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.hMenu=NULL;//你可以看一看cs的结构,里面有很多的东西有用
return TRUE;
}
现在可以解决第一题:
首先你讲想要把按钮做成跟窗口同大的按钮,我的理解是随窗口大小而比例的
的变大变小,(如果是做成同窗口一样大小的按钮则下面的代码就可以)
void CDe1Dlg::OnSize(UINT nType, int cx, int cy)
{
if (m_pbutton.m_hWnd!=NULL)
{
CRect rect;
this->GetClientRect(&rect);
m_pbutton.MoveWindow(&rect,true);
}
CDialog::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
}
但是我想你不是这样的想法,你的想法应该是按钮随窗口的变化而变化,那
么首先你要得到button在dlg中的位置,以及dlg的大小,这个是在初始化的时
候得到的,然后在WM_SIZE事件的过程中,得到一个大小的比率,然后你就可
以根据比率的大小,调节button的长或者是宽(好像一般是宽)以及button在
dlg中的位置。(这种方法是我经常用的方法,但是较笨)
第二题的解法,因为我知道是要截取消息的,但是我的机子没有装msdn帮助,
这个消息我记得不太清楚了,非常的抱歉!