c語言控制項
㈠ c語言:更改控制項的背景顏色
調用CWinApp : : SetDialogBkColor可以改變所有應用程序的背景顏色。第一個參數指定了背景顏色,第二個參數指定了文本顏色。下例將應用程序對話設置為藍色背景和黃色文本。
BOOL CSampleApp : : InitInstance ( )
{
…
//use blue dialog with yellow text .
SetDialogBkColor (RGB (0, 0, 255 ), RGB ( 255 , 255 , 0 ) ) ;
…
}
需要重畫對話(或對話的子控制項)時,Windows向對話發送消息WM_CTLCOLOR,通常用戶可以讓Windows選擇繪畫背景的刷子,也可重置該消息指定刷子。下例說明了創建一個紅色背景對話的步驟。
首先,給對話基類增加一人成員變數CBursh :
class CMyFormView : public CFormView
{
…
** :
CBrush m_ brush ; // background brush
…
} ;
其次, 在類的構造函數中將刷子初始化為所需要的背景顏色。
CMyFormView : : CMyFormView ( )
{
// Initialize background brush .
m_brush .CreateSolidBrush (RGB ( 0, 0, 255 ) )
}
最後,使用ClassWizard處理WM_CTLCOLOR消息並返回一個用來繪畫對話背景的刷子句柄。注意:由於當重畫對話控制項時也要調用該函數,所以要檢測nCtlColor參量。
HBRUSH CMyFormView : : OnCtlColor (CDC* pDC , CWnd*pWnd , UINT nCtlColor )
{
// Determine if drawing a dialog box . If we are , return +handle to
//our own background brush . Otherwise let windows handle it .
if (nCtlColor = = CTLCOLOR _ DLG )
return (HBRUSH) m_brush .GetSafeHandle ( ) ;
return CFormView : : OnCtlColor (pDC, pWnd , nCtlColor );
}不過VS2003以後就不支持SetDialogBkColor
此外,MFC在畫控制項時會發送WM_CTLCOLOR消息
OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
return hBrush; //返回一個畫刷,畫刷的顏色為控制項的顏色
} 不過Button之類的控制項則需要把button的屬性改為drawitem
㈡ c語言中控制項的Visible和Show有什麼區別
簡單的理解呢 是沒有明顯區別的 show是方法 visible是屬性;
show和visible都會觸發Form_Load()事件.
但是 show 後面還有個參數(0和1 一個模式窗體和無模式,這是很重要的功能,通常用在鎖定背景窗口時),visible則是隱藏和顯示 它後面是賦值的.
form2.show 1 '模式窗體,除了form2其它窗體被凍結
form2.unload '卸載窗體,而且會釋放內存.也會觸發Form_QueryUnload()事件,
form2.visible=false'隱藏 但不會釋放內存
同時還有form2.hide
show是對應hide
從上可以看出它們的關鍵區別:內存是否釋放
㈢ C語言中怎樣讓tablelayoutpanel中控制項居中顯示
從「工具箱」中將一個 TableLayoutPanel 控制項拖到窗體上。
將 Button 控制項從「工具箱」拖到 TableLayoutPanel 控制項左上部的單元格中。 Button 在單元格中居中。將 Button 控制項的 Anchor 屬性值設置為 None。 Button 控制項將移動到單元格的中心。
㈣ C語言如何添加控制項
C,只是一種計算機語言,就像你會說普通話,或會說英語;
語言本身沒有意義,你如何用它才是關鍵,你講的故事是否動聽,不是因為中文動聽,或是英文動聽,而你的表達在起作用,是你語言功底問題。
你所看的書中,講到運算方法,可以理解為,我們語言中的語法,它是告訴你,如何把一個問題講解清楚,並運用得當。
如果,你想用C語言編寫一個程序,有可視化的界面,有按鈕,有輸入框等等;
需要藉助一些開發工具,如vc等;
vc只是一個工具,你可以用它來編寫程序,但是,如果你想讓它聽你的話,你就要學會它能理解的語言,即C語言。
C是語言,它本身沒有功能,像任何一種語言一樣,只是提供交流,計算機語言就是供你與計算機交流的語言。
VC是開發工具,「欲先工其事,必先利其器」,工具的學習很重要,但最重的是,也是熟練使用工具的前提,你能與它進行「溝通」,學會它的「語言」。
㈤ C語言不是所有的控制項路徑都返回值
編譯器並不是這樣判斷的,編譯器的判斷邏輯是你是否在所有的分支中都返回了值,即if不成立時也必須返回值。編譯器認為如果三個if都不成立則此函數可能沒有返回值,故報錯。需要將第三個if改為else或者去掉if體直接return。
㈥ c語言 怎麼設置控制項ID
C語言 注冊窗口類 注冊一個窗口 然後 關聯2個控制項 EDIT到 ID跟PASSWORD上
鏈接到 資料庫上 有 UPDATE進行更改 庫中密碼
㈦ c語言tabcontrol控制項怎麼寫
1、首先創建一個MFC對話框框架,在對話框資源上從工具箱中添加上一個Tab Control 控制項,根據需要修改一下屬性,然後右擊控制項,為這個控制項添加一個變數,
將此控制項跟一個CTabCtrl類變數綁定在一起,這里設為m_tabctrl
2、創建兩個新的對話框資源,其屬性作如下修改:
Border:none //邊界為空,這樣它就沒了標題欄
Style :Child // 這樣這個模板就可以當作另一個窗口的子窗口了。
其它如果沒有必要,就不用改了。
在上面加一些控制項什麼的,具體操作跟普通對話框沒有區別。
完成後從這兩個對話框模板生成兩個新的對話框類。
3、在主對話框.h文件中加入新對話框的頭文件,並為新添加進來的兩個類增加兩個變數:
如:
CTabCtrl m_tabctrl;
CDlgTab1 m_dlgtab1;
CDlgTab2 m_dlgtab2;
4、在主對話框的OnInitDialog()函數中添加如下類似的代碼:
CRect r; //CRect包含用於定義矩形的左上角和右下角點的成員變數
m_tabctrl.GetClientRect(&r);
TCITEM item1;
TCITEM item2;
item1.mask = TCIF_TEXT;
item1.pszText = _T("第一頁");
m_tabctrl.InsertItem(1,&item1);
item2.mask = TCIF_TEXT;
item2.pszText = _T("第二頁");
m_tabctrl.InsertItem(2,&item2);
m_dlgtab1.Create (IDD_DLGTAB1,&m_tabctrl);
m_dlgtab2.Create (IDD_DLGTAB2,&m_tabctrl);
m_dlgtab1.SetWindowPos(NULL,10,30,r.right - 20,r.bottom - 40,SWP_SHOWWINDOW);
m_dlgtab2.SetWindowPos(NULL,10,30,r.right - 20,r.bottom - 40,SWP_HIDEWINDOW);
m_tabctrl.SetCurSel(0);
解釋如下:
兩個InsertItem函數的調用是為了給標簽控制項增加兩個標簽頁面,文本是標題。
SetWindowPos()函數設置這兩個對話框在Z順序中的位置,顯示或隱藏狀態。
5、在主對話中為標簽控制項添加一個標簽選擇改變(TCN_SELCHANGE)的控制項通知消息,以便在用戶選擇標簽時通知主對話框。在主對話框的編輯界面右擊標簽控制項
,選擇添加一個事件可以完成這個操作。
在事件處理中添加如下代碼,如下例:
void CtabdialogDlg::OnSelchangeTimingtab(NMHDR *pNMHDR, LRESULT *pResult)
{
CRect r;
m_tabctrl.GetClientRect (&r);
switch(m_tabctrl.GetCurSel())
{
case 0:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW );
break;
case 1:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW );
break;
}
*pResult = 0;
}
要想知道用戶選擇那個標簽頁,要通過m_tabctrl.GetCurSel() 函數。為了不使顯示的子對話框覆蓋標簽控制項的顯示,所以要獲得標簽控制項的尺寸然後設置各頁面的尺寸。