| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 720 人关注过本帖
标题:关于填充问题?
只看楼主 加入收藏
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
结帖率:30%
收藏
已结贴  问题点数:10 回复次数:4 
关于填充问题?
#include<windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
    MSG msg;
    WNDCLASS wndclass;
    HWND hwnd;
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wndclass.hInstance=hInstance;
    wndclass.lpfnWndProc=WndProc;
    wndclass.lpszClassName=TEXT("hi");
    wndclass.lpszMenuName=NULL;
    wndclass.style=CS_HREDRAW|CS_VREDRAW;
    if(!RegisterClass(&wndclass))
    {
        MessageBox(NULL,TEXT("错误"),TEXT("警告"),MB_ICONERROR);
    }
    hwnd=CreateWindow(TEXT("hi"),TEXT("画图"),WS_OVERLAPPEDWINDOW,100,100,500,500,NULL,NULL,hInstance,NULL);
    ShowWindow(hwnd,nShowCmd);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;

}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{   HDC hdc;
    PAINTSTRUCT ps;
    RECT rect;
    HPEN gpen,rpen;
    gpen=CreatePen(PS_SOLID,7,RGB(34,139,34));
    rpen=CreatePen(PS_SOLID,7,RGB(250,128,114));
    HBRUSH gbrush,rbrush;
    gbrush=CreateSolidBrush(RGB(46,139,87 ));
    rbrush=CreateSolidBrush(RGB(250,128,114));
    GetClientRect(hwnd,&rect);
    switch(message)
    {
    case WM_PAINT:
          hdc=BeginPaint(hwnd,&ps);
          SelectObject(hdc,gpen);
          FillRect(hdc,&rect,gbrush);
          Rectangle(hdc,0,0,200,900);
         
                  return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        DeleteObject(gpen);
        DeleteObject(gbrush);
        EndPaint(hwnd,&ps);
        return 0;
    }
    return DefWindowProc(hwnd,message,wParam,lParam);
}
为什么那个FillRect()函数不可以填充Rectangle()这个矩形,如果放在Rectangle()上面就会只剩下这个矩形没填充,如果放在Rectangle()下面就全部覆盖,难道这个函数只是可以填充背景?
搜索更多相关主题的帖子: include 
2010-09-02 08:26
xiayizhanzyf
Rank: 2
等 级:论坛游民
帖 子:80
专家分:78
注 册:2010-7-21
收藏
得分:5 
你想达到什么效果啊
2010-09-02 09:05
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:5 
GetClientRect(hwnd,&rect);
是这一句 决定了这一局 rect 得到的是整个显示区域
 FillRect(hdc,&rect,gbrush);
so 这个函数填充的是整个显示区域
再 so Rectangle(hdc,0,0,200,900);
这个函数与上个函数的位置 会影响你的视觉

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-09-02 09:12
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
收藏
得分:0 
回复 2楼 xiayizhanzyf
用FillRect()填充所画的那个矩形
2010-09-02 09:44
q345918550q
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-3-28
收藏
得分:0 
回复 3楼 do8do8do8
但是我这样定义也不行啊,RECT rect={0,0,200,900}
2010-09-02 09:47
快速回复:关于填充问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015228 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved