MFC基础知识整理

CComBox::

设置一个指向IDC_COMBO1的指针,用AddString()填充下拉框:

CComboBox*pComb=NULL;
pComb
=(CComboBox*)this->GetDlgItem(IDC_COMBO1);
pComb
->AddString("Com1");
pComb
->AddString("Com2");
pComb
->AddString("Com3");

取得下拉框的索引,然后将它的值赋给一个变量:

index=pComb->GetCurSel();
pComb
->GetLBText(index,value);

设置文本框的值:

CStringstrTemp;
GetDlgItemText(IDC_COMBO,strTemp);
strTemp
+=" ";
SetDlgItemText(IDC_COMBO,strTemp);

状态栏(StatusBar):

在状态栏中添加一个窗口(ID_STATUSBAR_STR),值为"Test",先在MainFrm中找到Indicators的结构体,然后在

结构体中添加"ID_STATUSBAR_STR",如下:

staticUINTindicators[]=
...{
ID_SEPARATOR,
//statuslineindicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
ID_STATUSBAR_STR,
}
;

当然,还可以在"VIEW"A菜单中的"Resource Symbols"中添加状态栏窗体(ID_STATUSBAR_STR).下面的代码可以

在程序中动态的改变状态栏的窗口(ID_STATUSBAR_STR)值:

CClientDCdc(this);
SIZEsize
=dc,GetTextExtent("Test成功拉!");
intindex=m_wndStatusBar.CommandToIndex(ID_STATUS);
m_wndStatusBar.SetPanelInfo(index,ID_STATUS_STR,SBPS_POPOUT,size.cx);
m_wndStatusBar.SetPanelText(index,_T(
"Test成功拉!",TRUE);

图形图象处理:

DC&GDI

DC的意思是设备环境,GDI的英文全称是Graphics Device Interface,即图形设备接口,在Windows程序中显示工作

是有DC来完成的,绘图工作是由GDI来完成的,那么,在初始化绘图对象之前,应该先初始化DC.

基类CObject
DC类CDC
派生类CPaintDCCClientDCCWindowsDCCMetaFileDC

CWindowsDC类与CPaintDC,CClientDC类的区别:

1.CWindows类可以在客户区和非客户区绘图,而CPaintDC,CClientDC只能在客户区绘图,所以CWindows

要在MainFrm类中使用,在VeiwL类中使用就不能在非客户区中绘图;

2.CWindows类在整个屏幕中建立坐标,而CPointDC和CClientDC是在客户区中建立坐标的.

绘图设备类(GDI):

基类CGdiObject
派生类CPenCBrushCFontCBitmapCRgnCPalette

绘图类的使用步骤:

1.定义一个GDI对象(如CPen,CBrush等),然后调用相应的函数(如CreatePen,CreatSolidBrush等)创建此GDI

对象.

2.将已构造出的GDI对象利用设备环境类的成员函数SelectObjiect()选入到当前环境中,并同时将原来的GDI对

象保存起来;

3.绘图结束后,恢复当前设备环境中原来的GDI对象,即利用设备环境类的成员函数SelectObjict将原来的GDI对

象重新选入.

下面是一个CPen类绘图的实例:

CPen pen;

pen.CreatPen(OS_SOLID,1,RGB(255,0,0));

CPen *pOldPen=pDC->SelectObjiect(&pen);

......

pDC->SelectObjiect(pOldPen);

改变Edit控件的字体大小:

CClientDCdc(this);
CEdit
*pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);
CFont
*font=newCFont;
font
->CreatePointFont(400,_T("华文行楷"),&dc);
if(pEdit)
...{
pEdit
->SetFont(font,TRUE);
}

else
AfxMessageBox(
"Failed");

获取应用程序的路径:

LPTSTRlpPath=newchar[MAX_PATH];
GetCurrentDirectory(MAX_PATH,lpPath);
strPath
=lpPath;
strPath
+="\\";
strPath
+="test.ini";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值