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() 函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面的尺寸。