欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Window編程筆記(5)->從Win32過渡到MFC工程 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們在追求其視覺表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

Window編程筆記(5)->從Win32過渡到MFC工程

發(fā)表時(shí)間:2020-10-18

發(fā)布人:葵宇科技

瀏覽次數(shù):84

#include<afxwin.h> //MFC中的核心頭文件、不需要添加Windows.h頭文件。

//MFC: Microsoft Foundation Classes (微軟基礎(chǔ)類庫)

C++類的形式,更方便的開發(fā)程序,把功能相近的一些Windows API函數(shù)、模塊,一類的形式進(jìn)行封裝、統(tǒng)一管理:
好處:可以重用、代碼數(shù)據(jù)更加嚴(yán)謹(jǐn)、提供程序員的開發(fā)效率。

MFC的發(fā)展:
缺點(diǎn):想要去做好,非常漂亮的軟件,耗時(shí),耗力。

esayX: 它的封裝,不是特別合理,沒有以面向?qū)ο蟮乃季S來開發(fā),個(gè)人開發(fā),
輕巧duilib: 開源的,
Qt: C++類庫,非常全面,非常豐富,提供的界面設(shè)計(jì),非常方便
自己開發(fā)屬于自己的界面庫。

為什么還要去學(xué)習(xí)MFC: 可學(xué)習(xí)之處。

//MFC程序三部曲
1、建立CWinApp的派生類
2、重寫InitInstance虛函數(shù)
3、定義CWinApp派生的全局對象

#include<afxwin.h>  
#include"resource.h"
//對話框光聯(lián)類,每一個(gè)類,光聯(lián)一個(gè)對話框資源

Class CMainDlg::public CDialog
{
private:
      HICON m_hIcon;  //成員變量,圖標(biāo)句柄
public:
    enum{IDD=IDD_MAIN_DLG}; //枚舉,自己新建的對話框的屬性名字
public:
CMainDlg(): CDialog(IDD_MAIN_DLG){}

//對話框初始化函數(shù)    //對話框生成了,只不過還沒有顯示而已
virtual BOOL OnInitDialog() //WM_INITDIALOG消息,類向?qū)?>重寫虛函數(shù)
{
//設(shè)置對話框窗口標(biāo)題
//::SetWindowText();
SetWindowText(L"我是小陳同學(xué)");
//修改程序的圖標(biāo)
//加載圖標(biāo) hInstance
//MFC中如何獲取實(shí)例句柄:
//1.AfxGetInstanceHandle();
//2.AfxGetApp()->m_hInstance;
//3.m_hIcon=AfxGetApp()->LoadIcon(IDI_CON1); 

//1.m_hIcon=::LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1));
//2.m_hIcon=::LoadIcon(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDI_ICON1));

m_hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);//IDI_CON1需要在vs2003編輯器添加圖標(biāo).ico

SetIcon(m_hIcon,TRUE); //小圖標(biāo)
SetIcon(m_hIcon,FALSE); //大圖標(biāo)

//MFC基本的一些數(shù)據(jù)類型,先彈出Afx對話框,彈出一個(gè)靜態(tài)對話框
//一.字符串 CString
//C++ string
//CString str=L"這是第一個(gè)表達(dá)方式";
//AfxMessageBox(str);

//CString str1("這是第二個(gè)表達(dá)方式");
//AfxMessageBox(str1);

CString str2="Hello World";
//CString str2="我是中國人";
//CString str2;

int nlength=str.GetLength();//字符串中字符的個(gè)數(shù)
str2.Empty();//把str2里面的字符串清空
if(str2.IsEmpty()==TRUE)
{
//彈出對話框有兩種表達(dá)方式
//第一種用: AfxMessageBox();
AfxMessageBox(L"程序異常");
//第二種用: ::MessageBox();
::MessageBox(NULL,L"程序異常",L"提示",MB_OK);
EndDialog(IDCANCEL);
}
else
{
::MessageBox(NULL,L"確定開啟應(yīng)用程序?",L"提示",MB_OK);
}
//wchar_t ch=str2.GetAt(2);
//wchar_t ch=str2.str2[2];

//修改字符,從第0個(gè)下標(biāo)修改
//str2.SetAt(0,L'w');
//AfxMessageBox(str2);

//連接起來,str2的字符串+str5的L寬字符"->123",+=也是連接操作
CString str5=str2+L"->123";
str5+="456";
AfxMessageBox(str5);

//字符串截取:HelloWorld
//CString str3=str2.Mid(2,3);
//CString str3=str2.Left(5);
//CString str3=str2.Right(5);
//AfxMessageBox(str3);

//字符串大小寫變換:小寫變大寫HelloWorld->HELLOWORLD=MakeUpper
//CString str3=str2.MakeUpper();
//大寫變小寫
//CString str3=str2.MakeLower();
//AfxMessageBox(str3);

//替換:1.把自身替換,每次做替換或者做其他功能時(shí)要彈一下方框
//str2.Replace(L"Hello",L"123");
//str2.Replace(L"1",L"0");:2.把當(dāng)個(gè)字符替換:
//AfxMessageBox(str2);

//插入
//str2.Insert(2,'3');//從第二個(gè)單詞插入一個(gè)3;
//AfxMessageBox(str2);

//刪除
//str2.Delete(2,3);
//AfxMessageBox(str2);

//格式化
//int year=2020;
//int month=4;
//int day=20;
//CString str3;
//str3.Format(L"%d年%d月%d日 %s",year,month,day,L"22:00:00");

//CString str3 = L"C:\\Users\\Administrator\\Desktop\\FirstMFC\\FirstMFC\\res\\test.exe";
		//str3 = str3.TrimLeft();
		//str3 = str3.TrimRight();
		//int pos=str3.Find('i',7);
		//int pos=str3.ReverseFind('\\');//顯示最后一個(gè)\\后面的內(nèi)容
		//if(pos!=-1)
		//{
		//str3=str3.Mid(pos+1);
        //}
        //AfxMessageBox(str3);
       //wchar_t arr[100];
       //wcscpy(arr,str3.GetBuffer());

//CPoint類 點(diǎn)
//POINT CPoint
//獲取鼠標(biāo)當(dāng)前的坐標(biāo)位置
//CPoint pt;
//GetCursorPos(&pt);
//CString str;
//str.Format(L"當(dāng)前鼠標(biāo)坐標(biāo):%d,%d,",pt.x,pt.y);
//AfxMessageBox(str);
//pt.Offset(-200,300);

//CSize 類大小
//CSize size(600,400);

//四。CRect 類 區(qū)域
//RECT 左,上,右和下四個(gè)符號
CRect rect(10,10,300,200);
int nwidth=rect.Width();
int nheight=rect.Height();

//IsRectEmpty
//兩點(diǎn) 一條線,空區(qū)域

//IsRectNull 四個(gè)值,全為0

//rect.InflateRect(10,10);下,右各加10,上,左各減10, 0,210,0,310;
rect.DeflateRect(10,10);//上,左各加10,下,右各減10, 20,190,20,290;

//矩形正常化
CRect rect2(300,200,10,10);
rect.NormalizeRect();

//五。時(shí)間 CTime 類
CTime time=CTime::GetCurrentTime();
//第一個(gè)表達(dá)方式
//int nyear=time.GetYear();
//int nmonth=time.GetMonth();
//int nday=time.GetDay();
//int nminte=time.GetMinute();
//int nsecond=time.GetSecond();
//int ndayofweek=time.GetDayOfWeek();
//CString str4;
//str4.Format(L"當(dāng)前時(shí)間:%d-%d-%d %d:%d:%d 星期%d",nyear,nmonth,nday,nminte,nsecond,ndayofweek);

//第二個(gè)表達(dá)方式
CString str4=time.Format(L"當(dāng)前時(shí)間:%Y:%m:%d %H:%M:%S");
SetWindowText(str4);
return TRUE;
}
DECLARE_MESSAGE_MAP()
//控件響應(yīng)
afx_msg void OnBnClicedOK();//雙擊按鈕對話框控件,自動(dòng)添加這段代碼
};
//關(guān)聯(lián)類
class CMyApp:public CWinApp
{
public:
     //構(gòu)造函數(shù)和析構(gòu)函數(shù)可寫可不寫
     CMyApp(){}
     ~CMyApp(){}
     //看做是入口函數(shù),MFC的所有代碼都從這里開始
     //InitInstance: MFC的初始化過程,啟動(dòng)管理
     //目的:InitInstance->為了初始化應(yīng)用程序,虛函數(shù)
  virtual BOOL InitInstance()
  {
//MessageBox:Window API
//:: 如果::的前面是沒有類名來修飾,那么,表示調(diào)用的是全局函數(shù),Windows API
//MFC里面的函數(shù)和Windows API里面的函數(shù)名字都是一樣的
//::MessageBox(NULL,L"這是MFC程序",L"提示",MB_OK);

//AFX這個(gè)前綴,Application Framework,一個(gè)團(tuán)隊(duì)的名字
//Application Framework 技術(shù)團(tuán)隊(duì)
//凡是Afx開頭的函數(shù),都表示全局函數(shù),都能再M(fèi)FC工程中使用

//AfxMessageBox(L"這是我的一個(gè)MFC程序");
 
//第一個(gè)方法:CDialog dlg(IDD_MAIN_DLG);
//dlg.DoModal(); //彈出一個(gè)靜態(tài)對話框
//第二個(gè)方法:
CMainDlg dlg; //彈出一個(gè)靜態(tài)對話框
return TRUE;//TURE:表示初始化成功,返回FALSE表示關(guān)閉應(yīng)用程序
//第一個(gè)對話框窗口

}
//負(fù)責(zé)清理操作,可寫可不寫
int ExitInstance()
{
return CWinApp::ExitInstance();
}
};
CMyApp theApp;
//WinMain函數(shù)無需再寫,MFC已經(jīng)在內(nèi)部實(shí)現(xiàn)了WinMain函數(shù)了.
//int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR ipCmdLine,int nCmdshow)
//{
//MessageBox(NULL,L"這是Win32程序",L"提示",MB_OK);
//return 0;
//}BEGIN_MESSAGE_MAP(CMainDlg,CDialog)
//END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CMainDlg,CDialog)
ON_BN_CLICKED(IDOK,&CMainDlg::OnBnClickedOK)
END_MESSAGE_MAP()

//點(diǎn)擊按鈕關(guān)閉程序
void CMainDlg::OnBnClickedOK()
{
//CDialog::OnOK();
if(IDOK!=NULL)
{
::MessageBox(NULL,L"點(diǎn)擊確定按鈕",L"提示",MB_OK);
}
else
{
EndDialog(IDCANCEL);
}
}

程序運(yùn)行如圖所示:
運(yùn)行源代碼

相關(guān)案例查看更多