VC常用小技巧-讓窗口一啟動就最大化_第1頁
VC常用小技巧-讓窗口一啟動就最大化_第2頁
VC常用小技巧-讓窗口一啟動就最大化_第3頁
VC常用小技巧-讓窗口一啟動就最大化_第4頁
VC常用小技巧-讓窗口一啟動就最大化_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

窗口讓窗口一啟動就最大化

把應(yīng)用程序類(CxxxApp)的InitInstance()函數(shù)中的

m_pMainWnd->ShowWindow(SW_SHOW);改為

m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);

則窗口一啟動就最大化顯示。

顯示位置的設(shè)置方法GetWindowRect()得到的是在屏幕坐標(biāo)系下的RECT(即以屏幕左上角為原點)GetClientRect()得到的是在客戶區(qū)坐標(biāo)系下的RECT(即以所在窗口左上角為原點,去掉了標(biāo)題欄計算,僅僅是個大小,返回值的左上角永遠(yuǎn)為0,0)ScreenToClient()就是把屏幕坐標(biāo)系下的RECT坐標(biāo)轉(zhuǎn)換為客戶區(qū)坐標(biāo)系下的RECT坐標(biāo)。如果需要獲得窗體在屏幕上的位置,使用GetWindowRect如果需要獲得窗體的大小,使用GetClientRect

如何設(shè)置窗口的初始尺寸

在將應(yīng)用程序類(CxxAPP)的InitInstance()函數(shù)中加入:

m_pMainWnd->SetWindowPos(NULL,x,y,Width,Height,SWP_NOMOVE);

Width為窗口寬度,Height為窗口高度

SWP_NOMOVE表示忽略位置(x,y)。

如:

讓窗口居中顯示

以下兩種方法可任選其一:

①在應(yīng)用程序類(CxxxApp)的InitInstance()函數(shù)中加入:

②在主框架類(MainFrm.cpp)的OnCreate()函數(shù)中加入:

CenterWindow(GetDesktopWindow());

如:如何修改窗口標(biāo)題

窗口標(biāo)題一般形式為:文檔標(biāo)題-程序標(biāo)題

1、設(shè)置文檔標(biāo)題:

在文檔類(CxxxDoc)的OnNewDocument()函數(shù)中加入語句:SetTitle("文檔名");

如:TextEditorDoc.cpp:①可刪除Debug文件夾和Release文件夾;

②原則上還可刪除主文件夾中所有圖標(biāo)為的文件,包括.aps、.ncb、.opt、.plg等文件,它們都能在編譯時重建。但一般.clw不要刪除,它可能導(dǎo)致ClassWizard不好用。

控件

如何隱藏和顯示控件

用CWnd類的函數(shù)BOOLShowWindow(intnCmdShow)可以隱藏或顯示一個控件。

例1:

CWnd*pWnd;

pWnd=GetDlgItem(IDC_EDIT1);//獲取控件指針,IDC_EDIT為控件ID號

pWnd->ShowWindow(SW_HIDE);//隱藏控件

例2:

CWnd*pWnd;

pWnd=GetDlgItem(IDC_EDIT1);//獲取控件指針,IDC_EDIT為控件ID號

pWnd->ShowWindow(SW_SHOW);//顯示控件

按鈕的使能與禁止

用ClassWizard的MemberVariables為按鈕定義變量,如:m_Button1;

m_Button1.EnableWindow(true);使按鈕處于允許狀態(tài)

m_Button1.EnableWindow(false);使按鈕被禁止,并變灰顯示

改變控件的大小和位置

用CWnd類的函數(shù)MoveWindow()或SetWindowPos()可以改變控件的大小和位置。

voidMoveWindow(intx,inty,intnWidth,intnHeight);

voidMoveWindow(LPCRECTlpRect);

第一種用法需給出控件新的坐標(biāo)和寬度、高度;

第二種用法給出存放位置的CRect對象;

例:

CWnd*pWnd;

pWnd=GetDlgItem(IDC_EDIT1);//獲取控件指針,IDC_EDIT1為控件ID號

pWnd->MoveWindow(CRect(0,0,100,100));//在窗口左上角顯示一個寬100、高100的編輯控件

SetWindowPos()函數(shù)使用更靈活,多用于只修改控件位置而大小不變或只修改大小而位置不變的情況:

BOOLSetWindowPos(constCWnd*pWndInsertAfter,intx,inty,intcx,intcy,UINTnFlags);

第一個參數(shù)一般設(shè)為NULL;

x、y控件位置;cx、cy控件寬度和高度;

nFlags常用取值:

SWP_NOZORDER:忽略第一個參數(shù);

SWP_NOMOVE:忽略x、y,維持位置不變;

SWP_NOSIZE:忽略cx、cy,維持大小不變;

例:

CWnd*pWnd;

pWnd=GetDlgItem(IDC_BUTTON1);//獲取控件指針,IDC_BUTTON1為控件ID號

pWnd->SetWindowPos(NULL,50,80,0,0,SWP_NOZORDER|SWP_NOSIZE);//把按鈕移到窗口的(50,80)處

pWnd=GetDlgItem(IDC_EDIT1);

pWnd->SetWindowPos(NULL,0,0,100,80,SWP_NOZORDER|SWP_NOMOVE);//把編輯控件的大小設(shè)為(100,80),位置不變

m_pMainWnd->SetWindowPos(NULL,0,0,750,555,SWP_NOMOVE);//設(shè)置窗口的初始大小為750*555

m_pMainWnd->ShowWindow(SW_SHOW);

m_pMainWnd->UpdateWindow();

returnTRUE;

}

m_pMainWnd->CenterWindow(GetDesktopWindow());intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){

if(CFrameWnd::OnCreate(lpCreateStruct)==-1)

return-1;

……

//TODO:Deletethesethreelinesifyoudon'twantthetoolbarto

//bedockable

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(&m_wndToolBar);

CenterWindow(GetDesktopWindow());//使窗口打開時處于屏幕正中

return0;

}

BOOLCTextEditorDoc::OnNewDocument(){

if(!CDocument::OnNewDocument())

returnFALSE;

//TODO:addreinitializationcodehere

//(SDIdocumentswillreusethisdocument)

SetTitle("未命名.txt");//設(shè)置文檔標(biāo)題

returnTRUE;

}

2、設(shè)置程序標(biāo)題:

在框架類(CMainFrame)的PreCreateWindow()函數(shù)中加入語句:m_strTitle=_T("程序標(biāo)題");

如:MainFrm.cpp:BOOLCMainFrame::PreCreateWindow(CREATESTRUCT&cs){

if(!CFrameWnd::PreCreateWindow(cs))

returnFALSE;

//TODO:ModifytheWindowclassorstylesherebymodifying

//theCREATESTRUCTcs

cs.style&=~FWS_ADDTOTITLE;//去除標(biāo)題欄文字前面的"無標(biāo)題"

m_strTitle=_T("文本整理器");//設(shè)置程序標(biāo)題

returnTRUE;

}

以上兩點比較適用于視圖-文檔結(jié)構(gòu)的程序,在新建文檔時,系統(tǒng)會自動運行OnNewDocument()函數(shù),在其中可以設(shè)置合適的標(biāo)題。對于未采用文檔的程序可以用下面的方法修改標(biāo)題:

3、修改窗口標(biāo)題:

修改窗口標(biāo)題一般在打開文件函數(shù)OnFileOpen()和另存為函數(shù)OnFileSaveAs()中進(jìn)行,可以使用下面的函數(shù):其中文檔標(biāo)題和程序標(biāo)題可使用定義過的串變量。

項目

如何干凈的刪除一個類?

1、先刪除項目中對應(yīng)的.h和.cpp文件,(選中后用Delete鍵刪除)

2、保存后退出項目,到文件夾中刪除實際的.h和.cpp文件;

3、刪除.clw文件;

4、重新進(jìn)入項目,進(jìn)行全部重建(rebuildall)。

如何建立一個新類?

從“插入”(Insert)菜單中選擇“新建類”(NewClass),在彈出的對話框中選擇基類(Baseclass),在Name中輸入新類的名字(一般都以C開頭)即可。

如果想要建立一個沒有基類的自定義類,則在NewClass對話框中把Classtype設(shè)置為generic,再輸入類名即可。

如何把外來文件添加到項目中?

先把外來文件復(fù)制到當(dāng)前項目的目錄下,從“項目”(Project)菜單下選擇“添加項目”(AddtoProject)下的“Files”菜單項,從彈出的打開文件對話框中把外來文件打開即可。

如何在一個工作區(qū)中打開多個項目?

一般編程者都有這樣的經(jīng)歷:做了一個項目,由于不滿意,想從頭重做,但又想把舊項目的一些可用內(nèi)容拷到新項目中來,以免做重復(fù)工作,這時就需要在新項目中打開舊項目。

先打開新項目,從“項目”(Project)菜單下選擇“插入項目到工作區(qū)”(InsertProjectintoWorkspace),從彈出的打開文件對話框中打開舊項目的.asp文件即可。

之后,可以利用“項目”(Project)菜單下的“設(shè)置活動項目”(SelectActiveProject)的選項中切換各打開的項目。

注意:在一個工作區(qū)中打開的各項目不能同名。

如何把項目中的文件分類存放?

當(dāng)我們往項目中添加新類時,它會把源文件放在SourceFiles下,頭文件放在HeaderFiles下。當(dāng)項目中文件很多時,管理不便,最好添加新節(jié)點,把文件分類放置。

右擊項目節(jié)點樹的根節(jié)點,選擇“NewFolder...”,在彈出的對話框中填入新節(jié)點名,則新節(jié)點就建立了,用鼠標(biāo)節(jié)點樹中的文件拖入新節(jié)點,就可以把文件分類了。

以上分類只是在項目的節(jié)點樹中分類,它不影響文件在磁盤上的位置,所有.cpp文件和.h文件仍在項目的根目錄下,最好文件本身也能分類存放在不同文件夾中。

在Windows下,用“新建文件夾”在項目的根目錄下建立子文件夾,如DialogClass,把所有對話框類的.cpp文件和.h文件拖入其中。

回到VC下,右鍵單擊項目樹中更改了路徑的節(jié)點,選擇“Properties”,在彈出的對話框中修改文件路徑,如:把原路徑“.\Dialog1.cpp”改為“.\DialogClass\Dialog1.cpp”。

打開Dialog1.cpp文件,修改它包含的文件路徑。如:

#include"stdafx.h"

#include"PluckBox.h"

#include"Dialog1.h"

改為:

#include"stdafx.h"

#include"..\\PluckBox.h"

#include"Dialog1.h"

打開ClassWizard,它會提示你文件不存在,單擊“確定”后,從對話框中用“Browse...”選擇文件所在路徑,則ClassWizard也可正常使用了。

編輯

編輯代碼時,跟隨提示消失了怎么辦?

單擊“工具”(Tools)菜單中的“設(shè)置”(Options)菜單項,在彈出的Options對話框中選擇Editor制表頁,把它最下方的四個復(fù)選框都選中(Autolistmember、Autotypeinfo、Codecomments、Autoparameterinfo),這樣,當(dāng)用戶輸入“->”或“.”時,會自動顯示跟隨提示,減少了輸入負(fù)擔(dān)。

對話框

如何修改對話框的背景色

在對話框的OnPaint()函數(shù)中加入下面語句:

CRectrect;

GetClientRect(&rect);//計算對話框的尺寸

dc.FillSolidRect(&rect,RGB(192,248,202));//繪制對話框背景色

如何讓彈出式對話框具有統(tǒng)一的背景色

在應(yīng)用程序類CxxxApp的InitInstance()函數(shù)中加入下面的語句:

SetDialogBkColor(RGB(192,248,202));

則所有用戶定義的彈出式對話框都以RGB(192,248,202)為背景色,就不需要逐個進(jìn)行設(shè)置了。

如何讓打開文件對話框能進(jìn)行多項選擇

在定制打開文件對話框時,增加OFN_ALLOWMULTISELECT屬性,就可以使打開文件對話框進(jìn)行多選了。

如:

CFileDialogm_Dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT

|OFN_ALLOWMULTISELECT,NULL,NULL);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論