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",如下:

static UINTindicators[] =
... {
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成功拉! " );
int index = 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
派生类 CPaintDC CClientDC CWindowsDC CMetaFileDC

CWindowsDC类与CPaintDC,CClientDC类的区别:

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

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

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

绘图设备类(GDI):

基类 CGdiObject
派生类 CPen CBrush CFont CBitmap CRgn CPalette

绘图类的使用步骤:

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 = new CFont;
font
-> CreatePointFont( 400 ,_T( " 华文行楷 " ), & dc);
if (pEdit)
... {
pEdit
->SetFont(font,TRUE);
}

else
AfxMessageBox(
" Failed " );

获取应用程序的路径:

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

你可能感兴趣的:(工作,windows,OS,mfc)