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);

设置文本框的值:

 

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

状态栏(StatusBar):

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

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

 

static  UINT indicators[]  =
{
    ID_SEPARATOR,           
// status line indicator
    ID_INDICATOR_CAPS,
    ID_INDICATOR_NUM,
    ID_INDICATOR_SCRL,
        ID_STATUSBAR_STR,
}
;

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

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

 

    CClientDC dc( this );
    SIZE size
= 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   
派生类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控件的字体大小:

      CClientDC dc( 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 " );

 

获取应用程序的路径:

 

    LPTSTR   lpPath    =     new     char [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、付费专栏及课程。

余额充值