MFC学习的笔记

1.m_pMainWnd = &dlg;//影响AFXGetMainwindow(),为空指针时,以当前激活的窗口为主窗口,有利于子窗口的显示

2.xxdlg.DoModal()的返回值是IDCANCEL或IDOK,中途按取消退出程序

             if(xxdlg.DoModal()==IDCANCEL)
     OnCancel();

3.GetDlgItem()返回值是指针

4.设置动态标题CString Title=_T("标题");

                           Title+=theApp.m_info.NAME;

                            SetWindowText(Title);

MFC里有个现成的全局对象 theApp,可以直接在里面添加个成员变量来接收所需动态设置的内容,因为theApp是CXXApp这个类的对象,跨文件使用时可以用extern CQQApp theApp;

5.设置控件焦点方法:GetDlgItem(IDC_xx)->SetFocus();

6.控件隐藏或显示:GetDlgItem(IDC_xx)->EnableWindow(BOOL);FALSE禁用




CFile类

1.以写入模式打开文件

xx.Open(_T("./USER.dat"),CFile::modeWrite|CFile::modeCreate)                               //modeCreat不管文件存在与否,都会重新创建

如果不想删了重新创建就加个CFile::modeTruncate,如果文件本身50KB,写入30KB,最终文件大小还是50KB,分为刚刚写入的前30KB和20KB旧数据,存在覆盖的现象

如果不想覆盖,要续写,得在写入内容前把起点设置在文件结尾:file.SeekToEnd();

2.写入操作 xx.Write(&nUser,sizeof(nUser));

3.已读取模式打开文件

xx.Open(_T("./USER.dat"),CFile::shareDenyNone|CFile::modeRead)                       //shareDenyNone,共享打开,不会因为别的程序的打开而无法读取

4.读取直到文件结束

while(file.Read(&ru,sizeof(ru))==sizeof(ru))//要求一次读取ru大小的数,返回值为实际读取大小,当实际读取大小<ru大小说明到结尾了
{
对读取出的数据的操作。。。
}




CListCtrl和CComboBox类

操作列表和下拉框的方法

一:定义一个CListCtrl 对象 指向一个List控件,因为GetDlgItem()的返回值是Cwnd类指针,要强制转换成CListCtrl指针

        如:CListCtrl * pList=(CListCtrl *)GetDlgItem(IDC_xx);

        添加列:pList->InsertColumn(0,_T("账号"),0,150);
        pList->InsertColumn(1,_T("密码"),0,150);
        pList->InsertColumn(2,_T("权限"),0,150);

        添加具体数据

        pList->InsertItem(i,ru.NAME);
pList->SetItemText(i,1,ru.PASS);
pList->SetItemText(i,2,ru.Prior ?_T("高级"):_T("普通"));

        如果不先调用InsertItem这个函数,后面的SetItemText 函数写了也不起作用,InsertItem起到向控件申请一行来放数据的作用。

 添加CComboBox选项

        pComb->AddString(_T("普通"));
pComb->AddString(_T("高级"));


二.CListCtrl一个对象my_list

my_list.SubclassDlgItem(IDC_XX,this);代替上面的强制转换为CListCtrl指针方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC中,OnCtrlColor是一个消息处理函数,用于控制对话框中控件的颜色。当对话框绘制控件时,将调用该函数来获取控件的背景色和文本色。 OnCtrlColor函数的原型如下: HBRUSH OnCtrlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); 其中,pDC是与控件相关联的设备上下文,pWnd是指向控件的指针,nCtlColor是控件的类型。nCtlColor可以是以下之一: - CTLCOLOR_MSGBOX:消息框 - CTLCOLOR_EDIT:编辑框 - CTLCOLOR_LISTBOX:列表框 - CTLCOLOR_BTN:按钮 - CTLCOLOR_DLG:对话框 - CTLCOLOR_SCROLLBAR:滚动条 - CTLCOLOR_STATIC:静态文本 OnCtrlColor的返回值是一个HBRUSH类型的句柄,用于绘制控件的背景。如果返回NULL,则使用系统颜色作为控件的背景。 下面是一个OnCtrlColor函数的例子: ```cpp HBRUSH CMyDlg::OnCtrlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { switch (nCtlColor) { case CTLCOLOR_EDIT: pDC->SetTextColor(RGB(255, 0, 0)); // 设置文本颜色为红色 pDC->SetBkColor(RGB(255, 255, 255)); // 设置背景颜色为白色 return (HBRUSH)GetStockObject(WHITE_BRUSH); // 返回白色画刷 case CTLCOLOR_STATIC: pDC->SetTextColor(RGB(0, 0, 255)); // 设置文本颜色为蓝色 pDC->SetBkMode(TRANSPARENT); // 设置背景为透明 return (HBRUSH)GetStockObject(NULL_BRUSH); // 返回透明画刷 default: return CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // 调用默认处理函数 } } ``` 这个例子中,当控件类型为编辑框时,设置文本颜色为红色,背景颜色为白色,并返回一个白色画刷;当控件类型为静态文本时,设置文本颜色为蓝色,背景为透明,并返回一个透明画刷;对于其他控件类型,调用默认的处理函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值