VCテクニック要約のコントロールテクニック
4641 ワード
本文はVCの小さい技巧のコントロールの技巧を集めてまとめて、VCの開発を行うことに対して一定の参考価値があって、具体的に以下の通りです:
1.コントロールの非表示と表示方法
CWndクラスの関数BOOL ShowWindow(int nCmdShow)でコントロールを非表示または表示できます.例1:
例2:
2.ボタンの使用と禁止
ClassWizardのMember Variablesを使用して、ボタンの変数を定義します.たとえば、m_Button1; 則
3.コントロールのサイズと位置を変更する
CWndクラスの関数MoveWindow()またはSetWindowPos()を使用すると、コントロールのサイズと位置を変更できます.
1つ目の使い方は、コントロールの新しい座標と幅、高さを与える必要があります.第2の使用法は、格納位置のCRectオブジェクトを与える.例:
最初のパラメータは一般的にNULLに設定されます.x、yコントロールの位置;cx、cyコントロールの幅と高さ;nFlags共通値:SWP_NOZORDER:最初のパラメータを無視する;SWP_NOMOVE:x、yを無視し、位置を維持する.SWP_NOSIZE:cx、cyを無視し、大きさを維持する.例:
以上の方法は、各種ウィンドウにも適用されます.
4.ラジオボタンコントロールの使用
(1)ラジオボタンをグループ化する:
各グループの最初のラジオボタン設定プロパティ:Group,Tabstop,Auto;残りのボタンはプロパティTabstop,Autoを設定します.例えば、Radio 1、Radio 2、Radio 3が一組、Radio 4、Radio 5が一組に設定Radio 1属性:Group、Tabstop、Auto設定Radio 2属性:Tabstop、Auto設定Radio 3属性:Tabstop、Auto設定Radio 4属性:Group、Tabstop、Auto設定Radio 5属性:Tabstop、Auto
(2)ClassWizardでラジオコントロールの変数を定義し、各グループに1つしか定義できません.例:m_Radio 1、m_Radio 4.
(3)ClassWizardで各ラジオボタンのクリックメッセージ関数を生成し,コンテンツを加える.
コントロール変数の値が0の場合、対応するグループの最初のラジオボタンが選択されます.
(4)デフォルトボタンの設定:
コントロール変数を定義する場合、ClassWizardはコンストラクション関数で変数の初期値を-1に設定し、他の値に変更するだけです.次のようになります.
4.回転コントロール(Spin)の使用
回転コントロールのボタンをクリックすると、対応する編集コントロールの値が大きくなります.設定の一般的な手順は、次のとおりです.
(1)ダイアログボックスにSpinコントロールと編集コントロールをSpinコントロールのパートナーウィンドウとして挿入する
Spinコントロール属性の設定:Auto buddy、Set buddy integer、Arrow keysテキストコントロール属性の設定:Number
(2)ClassWizardでSpinコントロールに変数m_Spinを定義し、編集コントロールに変数m_Editを定義し、定義時にはm_Editをint型に設定することに注意する.
(3)ダイアログボックスのOnInitDialog()関数に文を追加する.
(4)編集コントロールにClassWizardでEN_CHANGEメッセージ処理関数を追加し、文を追加する.
5.UpdateData()
UpdateData()関数は、コントロールの編集など、データを受信できるコントロールにとって重要です.コントロールの内容が変化すると、対応するコントロール変数の値は変化しません.同様に、コントロール変数の値が変化すると、コントロールの内容も変化しません.UpdateData()関数はこの問題を解決します.UpdateData(true);コントロールの内容をコントロール変数UpdateData(false)にロードします.コントロール変数の値でコントロールを更新するには、編集コントロールIDC_があります.EDIT 1、対応する変数は文字列m_Edit1,
(1)変数の値を変更し、コントロールに表示する.
(2)コントロールの値を変数に読み込む:
ClassWizardをIDC_とするEDIT 1 EN_を追加CHANGEメッセージ処理関数.この関数は、編集コントロールの内容が変化したときに実行されます.
1.コントロールの非表示と表示方法
CWndクラスの関数BOOL ShowWindow(int nCmdShow)でコントロールを非表示または表示できます.例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 ); //
2.ボタンの使用と禁止
ClassWizardのMember Variablesを使用して、ボタンの変数を定義します.たとえば、m_Button1; 則
m_Button1.EnableWindow(true); //
m_Button1.EnableWindow(false); // ,
3.コントロールのサイズと位置を変更する
CWndクラスの関数MoveWindow()またはSetWindowPos()を使用すると、コントロールのサイズと位置を変更できます.
void MoveWindow(int x,int y,int nWidth,int nHeight);
void MoveWindow(LPCRECT lpRect);
1つ目の使い方は、コントロールの新しい座標と幅、高さを与える必要があります.第2の使用法は、格納位置のCRectオブジェクトを与える.例:
CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 ); // ,IDC_EDIT1 ID
pWnd->MoveWindow( CRect(0,0,100,100) ); // 100、 100
SetWindowPos() , :
BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);
最初のパラメータは一般的にNULLに設定されます.x、yコントロールの位置;cx、cyコントロールの幅と高さ;nFlags共通値:SWP_NOZORDER:最初のパラメータを無視する;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 ); // (100,80),
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //
以上の方法は、各種ウィンドウにも適用されます.
4.ラジオボタンコントロールの使用
(1)ラジオボタンをグループ化する:
各グループの最初のラジオボタン設定プロパティ:Group,Tabstop,Auto;残りのボタンはプロパティTabstop,Autoを設定します.例えば、Radio 1、Radio 2、Radio 3が一組、Radio 4、Radio 5が一組に設定Radio 1属性:Group、Tabstop、Auto設定Radio 2属性:Tabstop、Auto設定Radio 3属性:Tabstop、Auto設定Radio 4属性:Group、Tabstop、Auto設定Radio 5属性:Tabstop、Auto
(2)ClassWizardでラジオコントロールの変数を定義し、各グループに1つしか定義できません.例:m_Radio 1、m_Radio 4.
(3)ClassWizardで各ラジオボタンのクリックメッセージ関数を生成し,コンテンツを加える.
void CWEditView::OnRadio1()
{
m_Radio1 = 0; //
}
void CWEditView::OnRadio2()
{
m_Radio1 = 1; //
}
void CWEditView::OnRadio3()
{
m_Radio1 = 2; //
}
void CWEditView::OnRadio4()
{
m_Radio4 = 0; //
}
void CWEditView::OnRadio5()
{
m_Radio4 = 1; //
}
コントロール変数の値が0の場合、対応するグループの最初のラジオボタンが選択されます.
(4)デフォルトボタンの設定:
コントロール変数を定義する場合、ClassWizardはコンストラクション関数で変数の初期値を-1に設定し、他の値に変更するだけです.次のようになります.
//{{AFX_DATA_INIT(CWEditView)
m_Ridio1 = 0; //
m_Ridio4 = 0; //
//}}AFX_DATA_INIT
4.回転コントロール(Spin)の使用
回転コントロールのボタンをクリックすると、対応する編集コントロールの値が大きくなります.設定の一般的な手順は、次のとおりです.
(1)ダイアログボックスにSpinコントロールと編集コントロールをSpinコントロールのパートナーウィンドウとして挿入する
Spinコントロール属性の設定:Auto buddy、Set buddy integer、Arrow keysテキストコントロール属性の設定:Number
(2)ClassWizardでSpinコントロールに変数m_Spinを定義し、編集コントロールに変数m_Editを定義し、定義時にはm_Editをint型に設定することに注意する.
(3)ダイアログボックスのOnInitDialog()関数に文を追加する.
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_Spin.SetBuddy( GetDlgItem( IDC_EDIT1 ) ); // Spin
m_Spin.SetRange( 0, 10 ); // 0-10
return TRUE;
}
(4)編集コントロールにClassWizardでEN_CHANGEメッセージ処理関数を追加し、文を追加する.
void CMyDlg::OnChangeEdit1()
{
m_Edit = m_Spin.GetPos(); // Spin
}
5.UpdateData()
UpdateData()関数は、コントロールの編集など、データを受信できるコントロールにとって重要です.コントロールの内容が変化すると、対応するコントロール変数の値は変化しません.同様に、コントロール変数の値が変化すると、コントロールの内容も変化しません.UpdateData()関数はこの問題を解決します.UpdateData(true);コントロールの内容をコントロール変数UpdateData(false)にロードします.コントロール変数の値でコントロールを更新するには、編集コントロールIDC_があります.EDIT 1、対応する変数は文字列m_Edit1,
(1)変数の値を変更し、コントロールに表示する.
m_Edit1 = _T(" 50");
UpdateData(false);
(2)コントロールの値を変数に読み込む:
ClassWizardをIDC_とするEDIT 1 EN_を追加CHANGEメッセージ処理関数.この関数は、編集コントロールの内容が変化したときに実行されます.
void CEditView::OnChangeEdit1()
{
UpdateData(true); //
}