目前共有5篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:不轉換▼
 
點擊 回復
309 4
【示例】用C++编写一个和XP主题设置里的“活动窗口”一样的窗口程序
一派護法 十九級
1樓 發表于:2016-1-14 16:26
【代码】
#include <Windows.h>

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;

    switch (uMsg)
    {
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        SelectObject(hdc, GetStockObject(DEFAULT_GUI_FONT));
        TextOut(hdc, 0, 0, "Window Text", 11);
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }
    return FALSE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX wcex;
    wcex.cbClsExtra = 0;
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.cbWndExtra = 0;
    wcex.hbrBackground = GetSysColorBrush(COLOR_WINDOW);
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    wcex.hInstance = hInstance;
    wcex.lpfnWndProc = WndProc;
    wcex.lpszClassName = "ActiveWindow";
    wcex.lpszMenuName = NULL;
    wcex.style = NULL;
    RegisterClassEx(&wcex);

    HWND hwnd = CreateWindow(wcex.lpszClassName, "Active Window", WS_OVERLAPPEDWINDOW | WS_VSCROLL, CW_USEDEFAULT, 0, 217, 127, NULL, NULL, hInstance, NULL);
    if (!hwnd)
        return 1;
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
【运行效果】


注意,由于这个窗口是程序的主窗口,所以左上角的图标无法去掉。因为Windows就是这样设计的。
一派護法 十九級
2樓 發表于:2016-1-14 16:28
编译环境:Visual C++ 6.0
操作系统:Windows XP Professional SP3
一派護法 十九級
3樓 發表于:2016-1-14 16:30
一派護法 十九級
4樓 發表于:2016-1-14 16:33
该程序在Windows 7下运行的效果:

一派護法 十九級
5樓 發表于:2016-1-14 16:36
这是XP系统的主题设置窗口:

里面的窗口标题栏没有图标。

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:309 回複數:4
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-1-14 16:36
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。