VCの小さい技巧のまとめのダイアログボックスの技巧
3576 ワード
本文はVCの中でダイアログボックスについてよく使ういくつかの技巧を集めてまとめて、VCの開発を行うことに対して一定の参考価値があるためです.
1.ダイアログの背景色を変更する方法:
ダイアログボックスのOnPaint()関数に次の文を追加します.
2.ポップアップ・ダイアログ・ボックスの背景色を統一する方法:
アプリケーションクラスCxxxAppのInitInstance()関数に次の文を追加します.
すべてのユーザ定義のポップアップダイアログボックスがRGB(192248202)を背景色としているので、個々に設定する必要はありません.
3.ファイルを開くダイアログを複数選択できるようにするには:
カスタムでファイルダイアログを開くときにOFN_を追加ALLOWMULTISELECTプロパティは、ファイルダイアログを開くために複数選択できます.次のようになります.
4.ファイルを開くダイアログで複数のファイルを一定数選択した場合、ファイルが開かない理由
CFIleDialogはファイルリストにバッファを設定し、ファイルを選択しすぎるとバッファがオーバーフローし、一部のファイルが開かない.システムバッファの代わりに大きなバッファをカスタマイズする方法で解決できます.次のようになります.
5.ヒントダイアログ(MessageBox)
ビュークラスおよびダイアログクラスでは、MFC関数で使用するMessageBox()関数を使用してダイアログボックスをポップアップできます.この関数のプロトタイプは次のとおりです.
パラメータ:lpszTextに表示される文字列lpsCaptionダイアログボックスのタイトルnTypeスタイルは、メッセージボックスのボタンを表示するために次のフラグのうちの1つを指定し、フラグの意味は次のとおりです.MB_ABORTRETRYIGNORE:メッセージボックスには、Abort、Retry、およびIgnoreの3つのボタンがあります.MB_OK:メッセージボックスには、OKというボタンがあります.これがデフォルトです.MB_OKCANCEL:メッセージボックスには、OKとCancelの2つのボタンがあります.MB_RETRYCANCEL:メッセージボックスには、RetryとCancelの2つのボタンがあります.MB_YESNO:メッセージボックスには、YesとNoの2つのボタンがあります.MB_YES-OCANCEL:メッセージボックスには、Yes,No,Cancelの3つのボタンがあります.メッセージ・ボックスのアイコンを表示するには、次のフラグのいずれかを指定します.フラグの意味は次のとおりです.MB_ICONEXCLAMATION: MB_ICONWARNING:メッセージボックスに驚嘆符が表示されます.MB_ICONINFORMATION: MB_ICONASTERISK:メッセージボックスに、円の小文字iからなるアイコンが表示されます.MB_ICONOUESTION:メッセージ・ボックスに問題マークのアイコンが表示されます.MB_ICONSTOP: MB_ICONERROR: MB_ICONHAND:メッセージボックスに停止メッセージアイコンが表示されます.デフォルトのボタンを指定するには、次のフラグのいずれかを指定します.フラグの意味は次のとおりです.MB_DEFBUTTON 1:最初のボタンはデフォルトボタンです.MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON 4が指定されていなければMB_DEFBUTTON 1がデフォルトです.MB_DEFBUTTON2;2番目のボタンはデフォルトのボタンです.MB_DEFBUTTON 3:3番目のボタンはデフォルトボタンです.MB_DEFBUTTON 4:4番目のボタンがデフォルトです.例:プロンプトファイルがディスクに保存されているかどうか:
ドキュメントクラスなど他のクラスではMFCのMessageBox()関数は使用できません.API関数のMessageBox()関数のみ使用できます.
hWnd:作成されるメッセージボックスの所有ウィンドウを識別します.このパラメータがNULLの場合、メッセージボックスにはウィンドウがありません.次の3つのパラメータは、ビュークラスのMessageBoxと同じですが、デフォルト値はなく、設定する必要があります.例:
1.ダイアログの背景色を変更する方法:
ダイアログボックスのOnPaint()関数に次の文を追加します.
CRect rect;
GetClientRect(&rect); //
dc.FillSolidRect(&rect,RGB(192,248,202)); //
2.ポップアップ・ダイアログ・ボックスの背景色を統一する方法:
アプリケーションクラスCxxxAppのInitInstance()関数に次の文を追加します.
SetDialogBkColor( RGB(192,248,202) );
すべてのユーザ定義のポップアップダイアログボックスがRGB(192248202)を背景色としているので、個々に設定する必要はありません.
3.ファイルを開くダイアログを複数選択できるようにするには:
カスタムでファイルダイアログを開くときにOFN_を追加ALLOWMULTISELECTプロパティは、ファイルダイアログを開くために複数選択できます.次のようになります.
CFileDialog m_Dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
| OFN_ALLOWMULTISELECT, NULL, NULL );
, GetStartPosition() , GetNextPathName() 。
:
if( m_Dlg.DoModal() == IDOK )
{
POSITION pos;
pos = m_Dlg.GetStartPosition();
while( pos )
{
m_Path = m_Dlg.GetNextPathName(pos);
…………
}
}
4.ファイルを開くダイアログで複数のファイルを一定数選択した場合、ファイルが開かない理由
CFIleDialogはファイルリストにバッファを設定し、ファイルを選択しすぎるとバッファがオーバーフローし、一部のファイルが開かない.システムバッファの代わりに大きなバッファをカスタマイズする方法で解決できます.次のようになります.
CFileDialog m_Dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
| OFN_ALLOWMULTISELECT, NULL, NULL );//
char* pBuf = new char[20480]; //
m_Dlg.m_ofn.nMaxFile = 20480; // pBuf CFileDialog
m_Dlg.m_ofn.lpstrFile = pBuf;
m_Dlg.m_ofn.lpstrFile[0] = NULL;
…………
delete []pBuf; //
5.ヒントダイアログ(MessageBox)
ビュークラスおよびダイアログクラスでは、MFC関数で使用するMessageBox()関数を使用してダイアログボックスをポップアップできます.この関数のプロトタイプは次のとおりです.
int MessageBox(LPCTSTR lpszText,LPCTSTR lpsCaption=NULL,UINT nType=MB_OK);
パラメータ:lpszTextに表示される文字列lpsCaptionダイアログボックスのタイトルnTypeスタイルは、メッセージボックスのボタンを表示するために次のフラグのうちの1つを指定し、フラグの意味は次のとおりです.MB_ABORTRETRYIGNORE:メッセージボックスには、Abort、Retry、およびIgnoreの3つのボタンがあります.MB_OK:メッセージボックスには、OKというボタンがあります.これがデフォルトです.MB_OKCANCEL:メッセージボックスには、OKとCancelの2つのボタンがあります.MB_RETRYCANCEL:メッセージボックスには、RetryとCancelの2つのボタンがあります.MB_YESNO:メッセージボックスには、YesとNoの2つのボタンがあります.MB_YES-OCANCEL:メッセージボックスには、Yes,No,Cancelの3つのボタンがあります.メッセージ・ボックスのアイコンを表示するには、次のフラグのいずれかを指定します.フラグの意味は次のとおりです.MB_ICONEXCLAMATION: MB_ICONWARNING:メッセージボックスに驚嘆符が表示されます.MB_ICONINFORMATION: MB_ICONASTERISK:メッセージボックスに、円の小文字iからなるアイコンが表示されます.MB_ICONOUESTION:メッセージ・ボックスに問題マークのアイコンが表示されます.MB_ICONSTOP: MB_ICONERROR: MB_ICONHAND:メッセージボックスに停止メッセージアイコンが表示されます.デフォルトのボタンを指定するには、次のフラグのいずれかを指定します.フラグの意味は次のとおりです.MB_DEFBUTTON 1:最初のボタンはデフォルトボタンです.MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON 4が指定されていなければMB_DEFBUTTON 1がデフォルトです.MB_DEFBUTTON2;2番目のボタンはデフォルトのボタンです.MB_DEFBUTTON 3:3番目のボタンはデフォルトボタンです.MB_DEFBUTTON 4:4番目のボタンがデフォルトです.例:プロンプトファイルがディスクに保存されているかどうか:
int t;
t=MessageBox(m_PathName+" , ?"," ",MB_YESNOCANCEL | MB_ICONWARNING);
if(t==0 || t==IDCANCEL)
return;
if(t==IDYES)
OnFileSave();
ドキュメントクラスなど他のクラスではMFCのMessageBox()関数は使用できません.API関数のMessageBox()関数のみ使用できます.
int MessageBox(HWND hWnd,LPCTSTR lpszText,LPCTSTR lpCaption,UINT UType);
hWnd:作成されるメッセージボックスの所有ウィンドウを識別します.このパラメータがNULLの場合、メッセージボックスにはウィンドウがありません.次の3つのパラメータは、ビュークラスのMessageBoxと同じですが、デフォルト値はなく、設定する必要があります.例:
::MessageBox(NULL,m_PathName+" , ?"," ",MB_YESNOCANCEL | MB_ICONWARNING);