`
isiqi
  • 浏览: 16034218 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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
派生类 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=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";

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics