欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VC小技巧匯總之對話框技巧

 更新時間:2014年07月21日 11:34:13   投稿:shichen2014  
這篇文章主要介紹了VC小技巧匯總之對話框技巧,非常實用!對于進(jìn)行VC開發(fā)有一定的參考借鑒價值,需要的朋友可以參考下

本文搜集匯總了VC中關(guān)于對話框常用的一些技巧,對于進(jìn)行VC開發(fā)由于一定的參考借鑒價值。

1.如何修改對話框的背景色:

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

CRect rect;
GetClientRect(&rect);   //計算對話框的尺寸
dc.FillSolidRect(&rect,RGB(192,248,202));  //繪制對話框背景色

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

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

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

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

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

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

CFileDialog m_Dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
    | OFN_ALLOWMULTISELECT, NULL, NULL );
之后,用GetStartPosition()函數(shù)獲取選擇的起始文件位置,用GetNextPathName()函數(shù)獲取各位置上的文件名。
如:
if( m_Dlg.DoModal() == IDOK )
{
   POSITION pos;
   pos = m_Dlg.GetStartPosition();
   while( pos )
   {
     m_Path = m_Dlg.GetNextPathName(pos);
     …………
   }
}

4.為什么用打開文件對話框選擇多個文件到一定數(shù)目時,文件沒有打開?

CFileDialog為文件列表設(shè)置有緩沖區(qū),當(dāng)選擇文件過多時,會造成緩沖區(qū)溢出,造成一些文件沒有被打開??梢圆捎米远x大緩沖區(qū)代替系統(tǒng)緩沖區(qū)的方法解決。
如:

CFileDialog m_Dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
    | OFN_ALLOWMULTISELECT, NULL, NULL );//定制打開文件對話框
char* pBuf = new char[20480];    //申請緩沖區(qū)
m_Dlg.m_ofn.nMaxFile = 20480;    //讓pBuf代替CFileDialog緩沖區(qū)
m_Dlg.m_ofn.lpstrFile = pBuf;
m_Dlg.m_ofn.lpstrFile[0] = NULL;
…………
delete []pBuf;    //回收緩沖區(qū)

5.提示對話框(MessageBox)

在視類和對話框類中可使用MFC函數(shù)中用的MessageBox()函數(shù)彈出提示對話框。這個函數(shù)原型為:

int MessageBox(LPCTSTR lpszText,LPCTSTR lpsCaption=NULL,UINT nType=MB_OK);

參數(shù):
lpszText 顯示的字符串
lpsCaption 對話框的標(biāo)題
nType 風(fēng)格,可為如下值的組合:
指定下列標(biāo)志中的一個來顯示消息框中的按鈕,標(biāo)志的含義如下。
MB_ABORTRETRYIGNORE:消息框含有三個按鈕:Abort,Retry和Ignore。
MB_OK:消息框含有一個按鈕:OK。這是缺省值。
MB_OKCANCEL:消息框含有兩個按鈕:OK和Cancel。
MB_RETRYCANCEL:消息框含有兩個按鈕:Retry和Cancel。
MB_YESNO:消息框含有兩個按鈕:Yes和No。
MB_YESNOCANCEL:消息框含有三個按鈕:Yes,No和Cancel。
指定下列標(biāo)志中的一個來顯示消息框中的圖標(biāo):標(biāo)志的含義如下。
MB_ICONEXCLAMATION:
MB_ICONWARNING:一個驚嘆號出現(xiàn)在消息框。
MB_ICONINFORMATION:
MB_ICONASTERISK:一個圓圈中小寫字母i組成的圖標(biāo)出現(xiàn)在消息框。
MB_ICONOUESTION:一個問題標(biāo)記圖標(biāo)出現(xiàn)在消息框。
MB_ICONSTOP:
MB_ICONERROR:
MB_ICONHAND:一個停止消息圖標(biāo)出現(xiàn)在消息框。

指定下列標(biāo)志中的一個來指定缺省的按鈕:標(biāo)志的含義如下。

MB_DEFBUTTON1:第一個按鈕為缺省按鈕。如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4沒有被指定,則MB_DEFBUTTON1為缺省值。
MB_DEFBUTTON2;第二個按鈕為缺省按鈕。
MB_DEFBUTTON3:第三個按鈕為缺省按鈕。
MB_DEFBUTTON4:第四個按鈕為缺省按鈕。

例:提示文件是否存盤:

int t;
t=MessageBox(m_PathName+"的文字已經(jīng)改變,要存盤嗎?","警告",MB_YESNOCANCEL | MB_ICONWARNING);
if(t==0 || t==IDCANCEL)
  return;
if(t==IDYES)
  OnFileSave();

在文檔類等其它類中不能使用MFC中的MessageBox()函數(shù),只能使用API函數(shù)中的MessageBox()函數(shù):

int MessageBox(HWND hWnd,LPCTSTR lpszText,LPCTSTR lpCaption,UINT UType);

hWnd:標(biāo)識將被創(chuàng)建的消息框的擁有窗口。如果此參數(shù)為NULL,則消息框沒有擁有窗口。
后三個參數(shù)與視類的MessageBox相同,但沒有缺省值,必須設(shè)置。
例:

::MessageBox(NULL,m_PathName+"的文字已經(jīng)改變,要存盤嗎?","警告",MB_YESNOCANCEL | MB_ICONWARNING);

相關(guān)文章

  • Qt?加載?libjpeg?庫出現(xiàn)“長跳轉(zhuǎn)已經(jīng)運行”錯誤問題解決

    Qt?加載?libjpeg?庫出現(xiàn)“長跳轉(zhuǎn)已經(jīng)運行”錯誤問題解決

    這篇文章主要介紹了Qt?加載?libjpeg?庫出現(xiàn)“長跳轉(zhuǎn)已經(jīng)運行”錯誤,本文給大家分享完美解決方案,需要的朋友可以參考下
    2023-04-04
  • C語言鏈表實現(xiàn)簡易通訊錄

    C語言鏈表實現(xiàn)簡易通訊錄

    這篇文章主要為大家詳細(xì)介紹了C語言鏈表實現(xiàn)簡易通訊錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • c++ 隊列相關(guān)知識總結(jié)

    c++ 隊列相關(guān)知識總結(jié)

    這篇文章主要介紹了c++ 隊列相關(guān)知識總結(jié),幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下
    2021-03-03
  • C++移動操作,RVO和NRVO詳細(xì)

    C++移動操作,RVO和NRVO詳細(xì)

    本文將討論了何時C++會自動進(jìn)行移動操作,并且說明了復(fù)制消除,RVO和NRVO優(yōu)的化等香瓜吧資料,需要的小伙伴可以參考一下
    2021-09-09
  • 在c和c++中實現(xiàn)函數(shù)回調(diào)

    在c和c++中實現(xiàn)函數(shù)回調(diào)

    如何在c和c++中實現(xiàn)函數(shù)回調(diào)呢?現(xiàn)在小編就和大家分享一下在c/c++中實現(xiàn)函數(shù)回調(diào)的示例代碼,需要的朋友可以參考下
    2013-07-07
  • vscode配置C++環(huán)境的圖文教程

    vscode配置C++環(huán)境的圖文教程

    這篇文章主要介紹了vscode配置C++環(huán)境的教程圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • C++讀取單個字符操作示例詳解

    C++讀取單個字符操作示例詳解

    這篇文章主要為大家介紹了C++讀取單個字符操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C++實現(xiàn)LeetCode(94.二叉樹的中序遍歷)

    C++實現(xiàn)LeetCode(94.二叉樹的中序遍歷)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(94.二叉樹的中序遍歷),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++11、C++14、C++17、C++20常用新特性

    C++11、C++14、C++17、C++20常用新特性

    本文主要介紹了C++11、C++14、C++17、C++20常用新特性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • c++重載運算符時返回值為類的對象或者返回對象的引用問題

    c++重載運算符時返回值為類的對象或者返回對象的引用問題

    這篇文章主要介紹了c++重載運算符時返回值為類的對象或者返回對象的引用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論