财神 发表于 2014-8-5 17:11:41

《Windows程序设计》第II部分关于图的那些事儿,该怎么学?

请教各位大神:
《Windows程序设计》第II部分关于图的那些事儿是不是学习的重点,该怎么学习这一部分的内容?

freeparty 发表于 2014-8-6 07:04:32

学api就一个一个学用多了就会了。

新浪 发表于 2014-8-7 11:04:30

还没学呢

c2013 发表于 2014-8-7 14:54:30

当成最后一章再学吧。

泓荥 发表于 2014-8-11 22:32:34

先了解什么是HDC,然后掌握3种坐标系,接着了解GDI对象:PEN,BRUSH,FONT,BITMAP,RGN,以及跟他们有关的函数,最后学习透明图像技术,动画技术,透明动画,学习并运用不规则窗口,双缓冲防闪技术,最后如果能做出一个支持画线,矩形和椭圆形等图形的软件,大概就差不多了

feixiangmenghu 发表于 2014-8-14 13:26:07

#include "stdafx.h"
#include "resource.h"
HINSTANCE g_hInst;

void OnPaint(HWND hWnd)
{
   PAINTSTRUCT ps;
   HDC hdc = BeginPaint(hWnd,&ps);
   //HBITMAP hBitmap = (HBITMAP)LoadImage(NULL,"./Picture.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
   HBITMAP hBitmap = LoadBitmap(g_hInst,(LPCTSTR)IDB_BITMAP1);
   BITMAP bm;
   //获取图片信息
   GetObject(hBitmap,sizeof(bm),&bm);
   HDC dc = CreateCompatibleDC(hdc);
   SelectObject(dc,hBitmap);
   MoveWindow(hWnd,0,0,bm.bmWidth,bm.bmHeight,FALSE);
   BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,dc,0,0,SRCCOPY);
   //
   RECT rect;
   GetClientRect(hWnd,&rect);
   Rectangle(hdc,100,100,300,500);
   LineTo(hdc,100,100);
   MoveToEx(hdc,300,500,NULL);
   EndPaint(hWnd,&ps);
}

void OnInitDialog(HWND hwnd)
{
        //HICON hIcon = (HICON)LoadImage(NULL,"./1.ico",IMAGE_ICON,0,0,LR_LOADFROMFILE);
        HICON hIcon = LoadIcon(g_hInst,(LPCTSTR)IDI_ICON1);
       
        ::SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
        SetWindowText(hwnd,"绘图测试");
}

void OnMouseMove(HWND hwnd)
{
        HCURSOR hCursor = LoadCursor(g_hInst,(LPCTSTR)IDC_CURSOR1);
        SetCursor(hCursor);
}
BOOL CALLBACK DialogProc(
HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
        switch(uMsg) {
        case WM_PAINT:
                OnPaint(hwndDlg);
                return TRUE;
        case WM_INITDIALOG:
                OnInitDialog(hwndDlg);
                return TRUE;
        case WM_MOUSEMOVE:
                OnMouseMove(hwndDlg);
                return TRUE;
        case WM_COMMAND:
                switch(LOWORD(wParam))
                {
                case IDCANCEL:
                        EndDialog(hwndDlg,IDCANCEL);
                        return TRUE;
                case IDOK:
                        return TRUE;
                }

黑暗漩涡 发表于 2014-8-15 13:46:50

回帖是一种美德

05497 发表于 2014-10-22 13:18:13

看了就回一下

智商是硬伤 发表于 2015-8-27 08:24:14

{:7_146:}
页: [1]
查看完整版本: 《Windows程序设计》第II部分关于图的那些事儿,该怎么学?