MFC笔记3

时间:2022-05-12 08:11:06

1.

C6有默认的提示代码功能,但是其默认的快捷键是Ctrl + Space,这一般情况下是切换输入法快捷键,所以,只需重新设置一下快捷键就可以实现提示代码功能,具体设置位置如下:

工具(T) -> 定制(C) -> 键盘

然后在类别中选择编辑,命令选择CompleteWord,编译器选择主要,就可以设下想要的快捷键了。

2.创建模态对话框

INT_PTR nRes;             // 用于保存DoModal函数的返回值
CTipDlg tipDlg; // 构造对话框类CTipDlg的实例
nRes = tipDlg.DoModal(); // 弹出对话框
if (IDCANCEL == nRes) // 判断对话框退出后返回值是否为 IDCANCEL,如果是则return,否则继续向下执行
return;*/

创建非模态对话框

在.h中定义一个窗口指针  CTipDlg *m_tipDlg;

if(NULL==m_se)
{
m_se=new Second();
m_se->Create(IDD_DIALOG1);
}
m_se->ShowWindow(SW_SHOW);

3.MFC中添加析构函数

//在头文件中:
{0
public:
CChatApp();
...
}
//中 CChatApp();的后面添加~CChatApp(); //在CPP文件中:
CChatApp::CChatApp()
{
}
//函数后面添加
CChatApp::~CChatApp()
{
}

4.在滚动条案例中要求重载CExample26Dlg类的OnHScroll函数。具体操作为,在CExample26Dlg类的属性页面(ctrl+w)的工具栏上点“Messages Map”按钮,找到WM_HSCROLL消息,添加响应函数就可以了。

假设在一个对话框中放入了一个水平滚动条,我们可以在对话框类中重载OnHScroll函数,并在OnHScroll函数中实现滚动功能。
void CExample26Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
//获取水平滚动条当前位置
int pos=m_horiScrollbar.GetScrollPos();
switch(nSBCode)
{
case SB_LINEUP:
pos-=;
break;
case SB_LINEDOWN:
pos+=;
break;
case SB_PAGEUP:
pos-=;
break;
case SB_PAGEDOWN:
pos+=;
break;
case SB_TOP:
pos=;
break;
case SB_BOTTOM:
pos=;
break;
case SB_THUMBPOSITION:
pos=nPos;
break;
/* 下面的m_horiScrollbar.SetScrollPos(pos);执行时会第二次进入此函数,
* 最终确定滚动块位置,并且会直接到default分支,
* 所以在此处设置编辑框中显示数值
*/
default:
SetDlgItemInt(IDC_HSCROLL_EDIT1,pos);
return;
}
//设置滚动条位置
m_horiScrollbar.SetScrollPos(pos);
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}