鸡啄米
最新评论及回复
-
4663. 藏没没:
零、硬件产生事件,操作系统把事件包装成消息,发给父窗口。
一般,可以插入控件的事件处理程序,作为回调函数。
本例,重写了窗口的消息响应函数,作为回调函数。
但,对于同一类型控件,可能有多个实例,操作系统传给回调函数的参数是共用的。
下面举例,两个Scroll Bar的情况。
一、父窗口(CCCtrl1AppDlg)中声明分别的位置暂存变量。
class CCCtrl1AppDlg : public CDialogEx
{
private:
CScrollBar m_my_ScrollH;
int m_my_ScrollH_copy;
CScrollBar m_my2_ScrollH;
int m_my2_ScrollH_copy;
}
二、构造函数中对暂存变量初始化
CCCtrl1AppDlg::CCCtrl1AppDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_CCTRL1APP_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_my_ScrollH_copy = 20;
m_my2_ScrollH_copy = 50;
}藏没没 于 2020/11/8 20:36:59 回复三、初始化函数中初始化滚动条状态
BOOL CCCtrl1AppDlg::OnInitDialog()
{
.................
//06 Scroll Bar
// 设置水平滚动条的滚动范围为1到100
m_my_ScrollH.SetScrollRange(1, 100);
// 设置水平滚动条的初始位置为20
m_my_ScrollH.SetScrollPos(m_my_ScrollH_copy);
// 在编辑框中显示20
SetDlgItemInt(IDC_EDIT5, m_my_ScrollH_copy);
// 设置水平滚动条的滚动范围为1到100
m_my2_ScrollH.SetScrollRange(1, 100);
// 设置水平滚动条的初始位置为20
m_my2_ScrollH.SetScrollPos(m_my2_ScrollH_copy);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}2020/11/8 20:36
-
4662. 藏没没:
创建两组Radio可以在Radio的属性中找到Group参数,改为TRUE则为本组的领头Radio,顺序由Tab决定。
能在属性中设置就不要编程修改属性。2020/11/8 15:22
-
4661. 藏没没:
更正博主
page2类需要重写OnSetActive()
BOOL CAdd2Page::OnSetActive()
{
// TODO: 在此添加专用代码和/或调用基类
CPropertySheet* psheet = (CPropertySheet*)GetParent();
psheet->SetWizardButtons(PSWIZB_NEXT| PSWIZB_BACK);
return CPropertyPage::OnSetActive();
}2020/11/7 16:54
-
4660. 藏没没:
网上说带有”MFC“的两个类支持不好。不知道是不是
2020/11/7 16:33
-
4659. 藏没没:
一定要通过【类向导】添加类,【类向导】中类全,有不带"MFC"的propertypage与propertysheet,且通过【类向导】可以选择添加”MFC类“,有构造函数的定义&消息宏&窗口ID标识。如果提示ID标识不正确,自己动手修改。2020/11/7 16:32