精华内容
下载资源
问答
  • 1. 控件窗口函数 2. 代码 class CTestDlg : public CDialogEx { ... public: int setFlag; CFont newFont; void OutputStatic(UINT nID,BYTE dat,int timeout); ... } BOOL CTestDlg::OnInitDialog() { //...

    1. 控件窗口函数

    在这里插入图片描述

    2. 代码

    class CTestDlg : public CDialogEx
    {
    ...
    public:
    	int setFlag;
    	CFont newFont; 
    	void OutputStatic(UINT nID,BYTE dat,int timeout);
    ...
    }
    
    BOOL CTestDlg::OnInitDialog()
    {
    	//设置效果
    	setFlag = 0;
    	newFont.CreatePointFont(300, "Arial", NULL);
    	((CStatic*)GetDlgItem(IDC_STATIC_Info))->SetFont(&newFont,true);
    
    ...
    }
    
    HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
    	// TODO:  在此更改 DC 的任何特性
    	if (pWnd->GetDlgCtrlID() == IDC_STATIC_Info)
    	{ 
    		if(setFlag == 0)
    		{
    			pDC->SetTextColor(RGB(0, 170, 0));//用RGB宏改变颜色 
    		}
    		else
    		{
    			pDC->SetTextColor(RGB(255, 0, 0));//用RGB宏改变颜色 
    		}
    		pDC->SelectObject(&newFont);
    	}
    	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
    	return hbr;
    }
    
    //static控件显示“设置成功!”等大约2s,不同颜色
    void CTestDlg::OutputStatic(UINT nID,BYTE dat,int timeout)
    {
    	CString info;
    	switch(dat)
    	{
    	case 0:
    		info = "设置成功!";
    		setFlag = 0;
    		break;
    	case 1:
    	default:
    		info = "设置失败!";
    		setFlag = 1;
    		break;
    	}
    	SetDlgItemText(IDC_STATIC_Info,info);//更新编辑框内容(主要是接收编辑框中的)
    	Sleep(timeout);
    	info = "";
    	SetDlgItemText(IDC_STATIC_Info,info);//更新编辑框内容(主要是接收编辑框中的)
    }
    
    展开全文
  • static 控件或具有 ES_READONLY 风格的 edit 控件被绘制时,会向父窗口发送 WM_CTLCOLORSTATIC 消息。如果我们在窗口过程中处理该消息,就必须返回一个画刷句柄,Windows 会使用该画刷来绘制控件背景(子窗口背景...

    当 static 控件或具有 ES_READONLY 风格的 edit 控件被绘制时,会向父窗口发送 WM_CTLCOLORSTATIC 消息。如果我们在窗口过程中处理该消息,就必须返回一个画刷句柄,Windows 会使用该画刷来绘制控件背景(子窗口背景)。

    也就是说,改变 static 控件的背景颜色只有这一种方式,就是处理 WM_CTLCOLORSTATIC 消息。WM_CTLCOLORSTATIC 消息就是用来设置背景画刷的。

    改变 static 控件的背景颜色

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        
        HDC hdc;//定义设备环境句柄  
        static TCHAR  szBuffer[128];
        //TEXTMETRIC tm;
       // SCROLLINFO si;
        PAINTSTRUCT ps;
        size_t iStrLength;
        static int cxChar, cyChar, cxClient, cyClient;
        static HWND hStatic;//静态文本框
        static HFONT hFont[6]; //声明一个逻辑字体句柄为静态变量
        static HBRUSH hBrush;  //画刷
        int i,n;
        //size_t iLength;
        static int iClick = 0;
        static TCHAR  szFont[10][6] = { TEXT("微软雅黑"),  TEXT("宋体"), TEXT("黑体"),  TEXT("楷体"),  TEXT("幼圆"),  TEXT("隶书") };
        switch (message)
        {
            case WM_SIZE://窗体大小改变
                hdc = GetDC(hWnd);
                //GetClientRect(hwnd, &rect);
                cxClient = LOWORD(lParam);//当前x像素
                cyClient = HIWORD(lParam);//当前y像素
                StringCchPrintf(szBuffer, 128, TEXT("当前客户区的分辨率:%d * %d px"), cxClient, cyClient);
                StringCchLength(szBuffer, 128, &iStrLength);
                SetTextAlign(hdc, TA_CENTER | TA_TOP);
                TextOut(hdc, cxClient / 2, 0, szBuffer, iStrLength);
                ReleaseDC(hWnd, hdc);
                return 0;
    
            case  WM_CREATE:     
                //创建画刷
                hBrush = CreateSolidBrush(RGB(0x41, 0x96, 0x4F));  //翠绿色
                //创建6个字体
                for (i = 0; i < 6; i++)
                {
                    hFont[i] = CreateFont(
                        -20/*高度*/, -10/*宽度*/, 0/*不用管*/, 0/*不用管*/, 400,//设置字体粗细程度一般这个值设为400,
                        FALSE/*不带斜体*/, FALSE/*不带下划线*/, FALSE/*不带删除线*/,
                        DEFAULT_CHARSET,  //这里我们使用默认字符集,还有其他以 _CHARSET 结尾的常量可用
                        OUT_CHARACTER_PRECIS, //输出精度
                        CLIP_CHARACTER_PRECIS,  //剪裁精度
                        DEFAULT_QUALITY,  //默认输出质量
                        FF_DONTCARE,  //不指定字体族*/
                        szFont[i]  //字体名
                    );
                }
                
                hStatic = CreateWindow(
                    TEXT("static"), //静态文本框的类名
                    TEXT("我其实是一个静态文本框"),  //控件的文本
                    WS_CHILD /*子窗口*/ | WS_VISIBLE /*创建时显示*/ | WS_BORDER /*带边框*/ | SS_CENTER /*水平居中*/ | SS_CENTERIMAGE /*垂直居中*/,
                    20 /*X坐标*/, 20 /*Y坐标*/, 400 /*宽度*/, 300 /*高度*/,
                    hWnd,  //父窗口句柄
                    (HMENU)1,  //为控件指定一个唯一标识符
                    hInst,  //当前程序实例句柄
                    NULL
                );
                break;
            case WM_CTLCOLORSTATIC:
                return (INT_PTR)hBrush;  //这里必须返回画刷句柄
    
            case WM_PAINT://窗口绘画:点
            {
                //int x, xLast;
                HDC hdc = BeginPaint(hWnd, &ps);//函数为指定窗口进行绘画作准备,并用将和绘画有关的信息填充到一个 PAINTSTRUCT 结构中。
                EndPaint(hWnd, &ps);
                return 0;
            }
            case WM_LBUTTONDOWN:  //鼠标左键单击消息
                iClick++;//鼠标点击次数
                //设置控件字体
                n = (iClick) % 6-1;//取余减一,
                //更改静态文本框 字体
                SendMessage(
                    hStatic,  //欲设置字体的控件句柄
                    WM_SETFONT,  //消息名(消息类型)
                    (WPARAM)hFont[n],  //取得字体句柄
                    NULL  //传空值即可
                );     
                StringCchPrintf(szBuffer, 128, TEXT("鼠标左键被单击%d次"), iClick);            
                SetWindowText(hStatic, szBuffer);            
                break;
                
            case WM_DESTROY:
                DeleteObject(hBrush);
                DeleteObject(hFont);//删除创建的字体
                PostQuitMessage(0);
                break;             
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        return 0;
    }
    
    

    效果
    在这里插入图片描述

    修改文字颜色和文字背景颜色

    上图中,我们的代码只是改变了控件的背景颜色(整个子窗口的背景颜色),却忽略了文字的背景颜色。

    修改文字背景颜色使用 SetBkColor 函数,它的原型为:

    COLORREF SetBkColor(
        HDC      hdc,  //设备环境句柄
        COLORREF crColor  //背景颜色
    );
    

    修改文字前景色(文字颜色)使用 SetTextColor 函数,它的原型为:

    COLORREF SetTextColor(
        HDC      hdc,  //设备环境句柄
        COLORREF crColor  //背景颜色
    );
    

    这里我们修改的是 static 控件中的文本颜色,所以需要获取 static 控件的设备环境句柄。非常巧妙的是,发送 WM_CTLCOLORSTATIC 消息时,wParam 参数表示的就是 static 控件的设备环境句柄(lParam 表示控件句柄)。

    下面的代码会修改文本的背景色和前景色:

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    
        HDC hdc;//定义设备环境句柄  
        HDC hdcStatic;
        static TCHAR  szBuffer[128];
        //TEXTMETRIC tm;
       // SCROLLINFO si;
        PAINTSTRUCT ps;
        size_t iStrLength;
        static int cxChar, cyChar, cxClient, cyClient;
        static HWND hStatic;//静态文本框
        static HFONT hFont[6]; //声明一个逻辑字体句柄为静态变量
        static HBRUSH hBrush;  //画刷
        int i, n;
        //size_t iLength;
        static int iClick = 0;
        static TCHAR  szFont[10][6] = { TEXT("微软雅黑"),  TEXT("宋体"), TEXT("黑体"),  TEXT("楷体"),  TEXT("幼圆"),  TEXT("隶书") };
        switch (message)
        {
        case WM_SIZE://窗体大小改变
            hdc = GetDC(hWnd);
            //GetClientRect(hwnd, &rect);
            cxClient = LOWORD(lParam);//当前x像素
            cyClient = HIWORD(lParam);//当前y像素
            StringCchPrintf(szBuffer, 128, TEXT("当前客户区的分辨率:%d * %d px"), cxClient, cyClient);
            StringCchLength(szBuffer, 128, &iStrLength);
            SetTextAlign(hdc, TA_CENTER | TA_TOP);
            TextOut(hdc, cxClient / 2, 0, szBuffer, iStrLength);
            ReleaseDC(hWnd, hdc);
            return 0;
    
        case  WM_CREATE:
            //创建画刷
            hBrush = CreateSolidBrush(RGB(0x41, 0x96, 0x4F));  //翠绿色
            //创建6个字体
            for (i = 0; i < 6; i++)
            {
                hFont[i] = CreateFont(
                    -20/*高度*/, -10/*宽度*/, 0/*不用管*/, 0/*不用管*/, 400,//设置字体粗细程度一般这个值设为400,
                    FALSE/*不带斜体*/, FALSE/*不带下划线*/, FALSE/*不带删除线*/,
                    DEFAULT_CHARSET,  //这里我们使用默认字符集,还有其他以 _CHARSET 结尾的常量可用
                    OUT_CHARACTER_PRECIS, //输出精度
                    CLIP_CHARACTER_PRECIS,  //剪裁精度
                    DEFAULT_QUALITY,  //默认输出质量
                    FF_DONTCARE,  //不指定字体族*/
                    szFont[i]  //字体名
                );
            }
    
            hStatic = CreateWindow(
                TEXT("static"), //静态文本框的类名
                TEXT("我其实是一个静态文本框"),  //控件的文本
                WS_CHILD /*子窗口*/ | WS_VISIBLE /*创建时显示*/ | WS_BORDER /*带边框*/ | SS_CENTER /*水平居中*/ | SS_CENTERIMAGE /*垂直居中*/,
                20 /*X坐标*/, 20 /*Y坐标*/, 400 /*宽度*/, 300 /*高度*/,
                hWnd,  //父窗口句柄
                (HMENU)1,  //为控件指定一个唯一标识符
                hInst,  //当前程序实例句柄
                NULL
            );
            break;
        case WM_CTLCOLORSTATIC:
            hdcStatic = (HDC)wParam;
            SetTextColor(hdcStatic, RGB(255, 255, 255));  //白色
            SetBkColor(hdcStatic, RGB(0x41, 0x96, 0x4F));   //设置字体背景为翠绿色
            return (INT_PTR)hBrush; //这里必须返回画刷句柄
             
    
        case WM_PAINT://窗口绘画:点
        {
            //int x, xLast;
            HDC hdc = BeginPaint(hWnd, &ps);//函数为指定窗口进行绘画作准备,并用将和绘画有关的信息填充到一个 PAINTSTRUCT 结构中。
            EndPaint(hWnd, &ps);
            return 0;
        }
        case WM_LBUTTONDOWN:  //鼠标左键单击消息
            iClick++;//鼠标点击次数
            //设置控件字体
            n = (iClick) % 6 - 1;//取余减一,
            //更改静态文本框 字体
            SendMessage(
                hStatic,  //欲设置字体的控件句柄
                WM_SETFONT,  //消息名(消息类型)
                (WPARAM)hFont[n],  //取得字体句柄
                NULL  //传空值即可
            );
            StringCchPrintf(szBuffer, 128, TEXT("鼠标左键被单击%d次"), iClick);
            SetWindowText(hStatic, szBuffer);
            break;
    
        case WM_DESTROY:
            DeleteObject(hBrush);
            DeleteObject(hFont);//删除创建的字体
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        return 0;
    }
    
    

    运行结果:
    在这里插入图片描述
    所以要想达到修改背景颜色的目的,除了修改static 控件的背景颜色,还要修改文本的背景颜色。

    透明背景

    实现透明背景需要设置文本背景颜色透明,同时返回没有颜色的画刷。

    1. SetBkMode 函数可以用来设置文本的背景模式,它的原型为:
    int SetBkMode(
        HDC hdc,  //设备环境句柄
        int iBkMode  //背景模式
    );
    

    iBkMode 有下面两种取值:
    取值 说明
    OPAQUE 使用当前背景颜色来填充背景。
    TRANSPARENT 背景透明。

    1. GetStockObject (NULL_BRUSH); 语句可以返回没有颜色的画刷。

    示例代码:

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    
        HDC hdc;//定义设备环境句柄  
        HDC hdcStatic;
        static TCHAR  szBuffer[128];
        //TEXTMETRIC tm;
       // SCROLLINFO si;
        PAINTSTRUCT ps;
        size_t iStrLength;
        static int cxChar, cyChar, cxClient, cyClient;
        static HWND hStatic;//静态文本框
        static HFONT hFont[6]; //声明一个逻辑字体句柄为静态变量
        static HBRUSH hBrush;  //画刷
        int i, n;
        //size_t iLength;
        static int iClick = 0;
        static TCHAR  szFont[10][6] = { TEXT("微软雅黑"),  TEXT("宋体"), TEXT("黑体"),  TEXT("楷体"),  TEXT("幼圆"),  TEXT("隶书") };
        switch (message)
        {
        case WM_SIZE://窗体大小改变
            hdc = GetDC(hWnd);
            //GetClientRect(hwnd, &rect);
            cxClient = LOWORD(lParam);//当前x像素
            cyClient = HIWORD(lParam);//当前y像素
            StringCchPrintf(szBuffer, 128, TEXT("当前客户区的分辨率:%d * %d px"), cxClient, cyClient);
            StringCchLength(szBuffer, 128, &iStrLength);
            SetTextAlign(hdc, TA_CENTER | TA_TOP);
            TextOut(hdc, cxClient / 2, 0, szBuffer, iStrLength);
            ReleaseDC(hWnd, hdc);
            return 0;
    
        case  WM_CREATE:
            //创建画刷
            hBrush = CreateSolidBrush(RGB(0x41, 0x96, 0x4F));  //翠绿色
            //创建6个字体
            for (i = 0; i < 6; i++)
            {
                hFont[i] = CreateFont(
                    -20/*高度*/, -10/*宽度*/, 0/*不用管*/, 0/*不用管*/, 400,//设置字体粗细程度一般这个值设为400,
                    FALSE/*不带斜体*/, FALSE/*不带下划线*/, FALSE/*不带删除线*/,
                    DEFAULT_CHARSET,  //这里我们使用默认字符集,还有其他以 _CHARSET 结尾的常量可用
                    OUT_CHARACTER_PRECIS, //输出精度
                    CLIP_CHARACTER_PRECIS,  //剪裁精度
                    DEFAULT_QUALITY,  //默认输出质量
                    FF_DONTCARE,  //不指定字体族*/
                    szFont[i]  //字体名
                );
            }
    
            hStatic = CreateWindow(
                TEXT("static"), //静态文本框的类名
                TEXT("我其实是一个静态文本框"),  //控件的文本
                WS_CHILD /*子窗口*/ | WS_VISIBLE /*创建时显示*/ | WS_BORDER /*带边框*/ | SS_CENTER /*水平居中*/ | SS_CENTERIMAGE /*垂直居中*/,
                20 /*X坐标*/, 20 /*Y坐标*/, 400 /*宽度*/, 300 /*高度*/,
                hWnd,  //父窗口句柄
                (HMENU)1,  //为控件指定一个唯一标识符
                hInst,  //当前程序实例句柄
                NULL
            );
            break;
        case WM_CTLCOLORSTATIC:
            hdcStatic = (HDC)wParam;
            SetTextColor(hdcStatic, RGB(0, 0, 255));  //蓝色
            //SetBkColor(hdcStatic, RGB(0x41, 0x96, 0x4F));  //设置字体背景为翠绿色
            SetBkMode(hdcStatic, TRANSPARENT);  //透明背景
            //return (INT_PTR)hBrush; //这里必须返回画刷句柄
            return (INT_PTR)GetStockObject(NULL_BRUSH);  //无颜色画刷
             
    
        case WM_PAINT://窗口绘画:点
        {
            //int x, xLast;
            HDC hdc = BeginPaint(hWnd, &ps);//函数为指定窗口进行绘画作准备,并用将和绘画有关的信息填充到一个 PAINTSTRUCT 结构中。
            EndPaint(hWnd, &ps);
            return 0;
        }
        case WM_LBUTTONDOWN:  //鼠标左键单击消息
            iClick++;//鼠标点击次数
            //设置控件字体
            n = (iClick) % 6 - 1;//取余减一,
            //更改静态文本框 字体
            SendMessage(
                hStatic,  //欲设置字体的控件句柄
                WM_SETFONT,  //消息名(消息类型)
                (WPARAM)hFont[n],  //取得字体句柄
                NULL  //传空值即可
            );
            StringCchPrintf(szBuffer, 128, TEXT("鼠标左键被单击%d次"), iClick);
            SetWindowText(hStatic, szBuffer);
            break;
    
        case WM_DESTROY:
            DeleteObject(hBrush);
            DeleteObject(hFont);//删除创建的字体
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        return 0;
    }
    
    

    运行效果:
    在这里插入图片描述

    展开全文
  • switch(message) { case WM_CREATE: { hStatic = CreateWindow( "static", //静态文本框的类名 "The C Program Language", //控件文本 WS_CHILD /*子窗口*/| WS_VISIBLE /*创建时显示*/| WS_BORDER /*...

    #include 

    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

    HINSTANCE hInst;

    /* The 'main' function of Win32 GUI programs: this is where execution starts */

    int WINAPI WinMain(

    HINSTANCE hInstance,

    HINSTANCE hPrevInstance,

    LPSTR lpCmdLine,

    int nCmdShow)

    {

    static TCHAR szClassName[] = TEXT("HelloWin"); /*窗口类名*/

    HWND hwnd;  /*窗口句柄*/

    MSG msg;    /*消息*/

    WNDCLASS wndclass;   /*窗口类*/

    hInst = hInstance;

    /***********第一步:注册窗口类*************/

    /*为窗口类各个字段赋值*/

    wndclass.style = CS_HREDRAW | CS_VREDRAW;  /*窗口风格*/

    wndclass.lpfnWndProc  = WndProc; /*窗口过程*/

    wndclass.cbClsExtra   = 0;

    wndclass.cbWndExtra   = 0;

    wndclass.hInstance    = hInstance;  /*当前窗口句柄*/

    wndclass.hIcon        = LoadIcon(NULL, IDI_APPLICATION);  /*窗口图标*/

    wndclass.hCursor      = LoadCursor(NULL, IDC_ARROW);/*鼠标样式*/

    wndclass.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);/*窗口背景画刷*/

    wndclass.lpszMenuName = NULL;  /*窗口菜单*/

    wndclass.lpszClassName= szClassName; /*窗口类名*/

    /*注册窗口*/

    RegisterClass(&wndclass);

    /*************第二步:创建窗口(并让窗口显示出来)***************/

    hwnd = CreateWindow(

    szClassName,  /*窗口名字*/

    TEXT("Welcome"), /*窗口标题*/

    WS_OVERLAPPEDWINDOW,  /*窗口风格*/

    CW_USEDEFAULT,  /*初始化x轴的位置*/

    CW_USEDEFAULT,  /*初始化y轴的位置*/

    640,  /*窗口宽度*/

    480,  /*窗口高度*/

    NULL, /*父窗口句柄*/

    NULL, /*窗口菜单句柄*/

    hInstance, /*当前窗口句柄*/

    NULL    /*不使用该值*/

    );

    if(hwnd == NULL)

    {

    MessageBox(NULL, "创建窗口出错!", "Error", MB_OK);

    return -1;

    }

    /*显示窗口*/

    ShowWindow(hwnd, nCmdShow);

    /*更新(绘制)窗口*/

    UpdateWindow(hwnd);

    /*************第三步:消息循环*************/

    while(GetMessage(&msg, NULL, 0, 0))

    {

    TranslateMessage(&msg);  /*翻译消息*/

    DispatchMessage(&msg);   /*分派消息*/

    }

    return msg.wParam; /*当GetMessage程序返回FALSE是程序结束*/

    }

    /*************第四步:窗口过程*****************/

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

    {

    HDC hdc;

    PAINTSTRUCT ps;

    HWND hStatic;

    switch(message)

    {

    case WM_CREATE:

    {

    hStatic = CreateWindow(

    "static", //静态文本框的类名

    "The C Program Language", //控件文本

    WS_CHILD /*子窗口*/| WS_VISIBLE /*创建时显示*/| WS_BORDER /*带边框*/| SS_CENTER /*水平居中*/| SS_CENTERIMAGE/*垂直居中*/,

    20 /*X坐标*/, 20 /*Y坐标*/, 200 /*宽度*/, 100 /*高的*/,

    hWnd, // 父窗口句柄

    (HMENU)1, //为控件指定唯一标示符

    hInst,  //当前程序实例句柄

    NULL

    );

    break;

    }

    case WM_PAINT:

    {

    hdc = BeginPaint(hWnd, &ps);

    //Ellipse(hdc, 0, 100, 200, 200);

    EndPaint(hWnd, &ps);

    break;

    }

    /*窗口销毁消息*/

    case WM_DESTROY:

    {

    /*处理WM_DESTROY消息时删除之前我们创建的一切GDI对象*/

    PostQuitMessage(0);

    break;

    }

    default:

    {

    return DefWindowProc(hWnd, message, wParam, lParam);

    }

    }

    return 0;

    }

    展开全文
  • 在实际的应用中,可以用WM_CTLCOLOR 消息改变mfc中控件的颜色,比如现在就来改变一个static text控件的 字体、字体大小、字体颜色和背景色。 例如对话框的类为CTestDlg. 1. 在对话框的类中添加两个变量. 方法:在...

    在实际的应用中,可以用WM_CTLCOLOR 消息改变mfc中控件的颜色,比如现在就来改变一个static text控件的

    字体、字体大小、字体颜色和背景色。

    例如对话框的类为CTestDlg.

    1. 在对话框的类中添加两个变量.

    方法:在classview选项卡中,选择CTestDlg,右键,add member variable.

    CBrush m_brush;
    CFont m_font;
    
    

    在OnInitDialog()函数中添加:

    // TODO: ……

    m_font.CreatePointFont(150,“华文行楷”);//代表15号字体,华文行楷
    m_brush.CreateSolidBrush(RGB(0,255,0));//画刷为绿色

    2 添加WM_CTLCOLOR 消息响应,添加的方法为:

    add windows message handler->WM_CTLCOLOR->add and edit

    3 在HBRUSH CTestDlg::OnCtlColor(CDC pDC, CWnd pWnd, UINT nCtlColor) 函数中的todo后添加代码,即:**

    HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
     // TODO: Change any attributes of the DC here
     if (pWnd->GetDlgCtrlID() == IDC_STATICText)
     {
    
      pDC->SetBkColor(RGB(0,255,0));//背景色为绿色
      pDC->SetTextColor(RGB(255, 0, 0));//文字为红色
      pDC->SelectObject(&m_font);//文字为15号字体,华文行楷
      return m_brush;
     }
    
     // TODO: Return a different brush if the default is not desired
     return hbr;
    
    }
    
    

    这样就可以改变static text的背景色、字体、字体大小和字体颜色了。

    展开全文
  • (1)从工具箱选中static_text控件,拉入Dialog控件中 (2)将static_text控件ID改为ID_RUNTIME (3)选择“项目”->“类向导"->选中对应Dialog控件的cpp类(我的是CgOpControl)->选择“成员变量”->...
  • GetDlgItem(IDC_STATIC_PLAY)->GetClientRect(&rect); // 获取图片控件矩形框 cv::Size dsize = cv::Size(rect.Width(), rect.Height()); cv::Mat img = cv::Mat(dsize, CV_8UC3); cv::...
  • #include <... static int number; //回调函数 static void callback(int data); }; int Test::number = 0; void Test::callback(int data) { number = data; cout<<"number = "<<n.
  • C++ MFC GroupEx自定义控件:CStatic/Group 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 C++ ...
  • Jaspersoft Studio 本身不支持中文字符,所以如果报表中存在中文字符,就会变成一个一个的小方块:有...“static text”,因为它不会对内容进行转换。这时要替换为 “text field” 组件,并把汉字对应的 unicode 拷...
  • 文章目录创建static text控件用Button控件添加事件更改显示内容用MessageBox显示text中的内容用static text控件控件显示图片附 :Button控件也可以更改内容 创建static text控件 使用工具箱添加static text控件,并...
  • 解决MFC中static text输出换行与在不删除前值的情况下输出新值 代码如下: CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT2); int index = pEdit->GetWindowTextLength();//获取长度 pEdit->SetSel(index, index...
  • 常用控件主要包括:静态文本框、编辑框、单选按钮、复选框、分组框、列表框、组合框、图片控件、列表控件、树形控件和进度条控件等等。本节教程先来讲解静态文本框的使用。 Xtreme Toolkit Pro是屡获殊荣的VC界面库...
  • import wxclass TransparentStaticText(wx.StaticText):"""重写StaticText控件"""def __init__(self, parent, id=wx.ID_ANY, label='', pos=wx.DefaultPosition, size=wx.DefaultSize,style=wx.TRANSPARENT_WINDOW, ...
  • 这个地方不是说要定义成static, 这个是微软编译器提示的问题, 不能在case中定义变量,而static不算是case中定义的, 所以不会出错, 这个问题最好的解决方法就是: 每个case句都使用大括号括起来, 如下所示:LRESULT ...
  • 在C语言控制台程序(Console Application)中,可以使用 scanf 函数获取用户的输入,而在Windows程序中使用编辑框控件。创建编辑框控件编辑框控件的窗口类名是edit。除了子窗口常用的风格WS_CHILD、WS_VISIBLE、WS_...
  • MFC的基本控件的使用~静态文本(staticText)的使用 不要糟蹋五谷和杂粮2019-05-02 16:20:335176收藏9 分类专栏:MFC文章标签:MFC 版权 今天做一下静态文本的笔记。首先新建一个MFC应用程序,这次以对话框的...
  • 一、 Windows标准控件概述 (一)Windows标准控件 Windows系统提供的标准控件主要包括静态控件、按钮控件、编辑框控件、列表框控件、组合框...静态控件 CStatic Static Text、Group Box 按钮控件 CButton Butto...
  • -1,mutiRightStr,(220,150), style=wx.ALIGN_RIGHT) def main(): app=wx.PySimpleApp() frame=StaticTextFrame() frame.Show(True) app.MainLoop() if __name__ == "__main__": main() wx.StaticText控件的构造函数...
  • pHoldBase :static1控件 pHoldForce :static1控件 CWnd* pHoldBase = GetDlgItem(IDC_STATIC_BASE); //static1控件 CWnd* pHoldForce = GetDlgItem(IDC_STATIC_FORCE); //static2控件 if (pHoldBase && ...
  • @BindView(R.id.search_second_frag_tab) ...黄油刀找到的控件,前面不能加public static 修饰,否则 运行时,Dagger 注解框架直接崩了,删掉public static 又好了,网上一查,好像还真的不能在前面添加privite stat
  • QRect monthTextRect(static_cast(rect.width() * 0.20) + 10,y - 20, static_cast(rect.width() * 0.05),40); painter.drawText(monthTextRect,Qt::AlignRight | Qt::AlignVCenter, QString("%1月").arg(QString::...
  • } public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } } 总结: 此控件使用起来,...
  • Android自定义控件

    2021-06-09 07:11:06
    自定义View实现有几种:自定义组合控件:多个控件组合成为一个新的控件,方便多处复用继承系统View控件:继承自TextView等系统控件,在系统控件的基础功能上进行扩展继承View:不复用系统控件逻辑,继承View进行功能...
  • } private static SimpleDateFormat getDefaultDateFormat() { return new SimpleDateFormat("yyyy年MM月dd日HH时") ; } //覆盖父类32313133353236313431303231363533e4b893e5b19e31333236366265的方法 public void...
  • 静态文本控件显示一行或多行只读文本。Create()功能用于两步创建静态文本。我将statictext的属性作为参数。用法: wx.StaticText.Create(parent, id=ID_ANY, label=””, pos=DefaultPosition, size=DefaultSize, ...
  • if(type == QEvent::MouseButtonPress )//鼠标按下事件 { if(QMouseEvent *mouse = static_cast(event)) { if(mouse->button() == Qt::LeftButton && drawRect.contains(mouse->pos())) { press = true; PreDot = ...
  • Java日期选择控件

    2021-03-14 00:25:22
    一起学习一次项目研发中需要日期时间选择控件,网上提供的不多,且质量一般,所以只好自己做,参考了 网上某位同学的 作品 Jave 日期选择控件 DateChooser 。目前的代码将日期时间选择封装在一个按钮组件内,应该很...
  • 在应用程序的用户界面中,一个简短的文本标签可以使用户知道这些控件的目的,所以标签在Swing中是比较常用的控件。1、标签的使用标签由JLabel类定义,父类为JComponent类。标签可以显示一行只读文本,一个图像或带...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 219,064
精华内容 87,625
关键字:

static控件

友情链接: 06th.zip