xiaojiam 发表于 2008-7-23 22:27

求助如何用C语言画一个简单的界面啊!

求助刚刚入门!但是不懂如何做界面!编程的难度太大了不知道如何下手才好!请高手指教一二!谢谢!

永久的守护 发表于 2008-7-24 09:25

没学过WINDOWS编程的都问这个 学完这个方向自然就有了

xiaojiam 发表于 2008-7-24 13:24

大哥我也知道能,不过要学完这个可能是几个也或是几年的是了!有没有些好的方法,就一个画界面能调用C的代码就行了![tk01] [tk01] [tk01]

netsolo 发表于 2008-7-24 14:42

#include <windows.h>

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

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
        static TCHAR    szAppName[] = TEXT ("Hello Windows") ;
        HWND            hwnd ;
        MSG             msg ;
        WNDCLASS        wndclass ;

        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  = szAppName ;

        if (!RegisterClass (&wndclass))
        {
            MessageBox ( NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ;
            return 0 ;
        }

        hwnd = CreateWindow ( szAppName, TEXT ("Hello Windows"),
                              WS_OVERLAPPEDWINDOW,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              NULL, NULL, hInstance, NULL) ;

        ShowWindow (hwnd, iCmdShow) ;
        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)
{
        static RECT    rect ;
        HDC            hdc ;
        PAINTSTRUCT    ps ;

        switch (message)
        {
        case   WM_CREATE :
            return 0 ;

        case   WM_SIZE :
            return 0 ;
        case    WM_PAINT :
            InvalidateRect (hwnd, &rect, TRUE) ;

            hdc = BeginPaint (hwnd, &ps) ;
            SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)) ;
            SetBkMode (hdc, TRANSPARENT) ;

            TextOut(hdc, 100, 100, TEXT("HELLO"), 5);

            EndPaint (hwnd, &ps) ;
            return 0 ;
        case    WM_DESTROY :
            PostQuitMessage (0) ;
            return 0 ;
        }
        return DefWindowProc (hwnd, message, wParam, lParam) ;
}

永久的守护 发表于 2008-7-24 17:12

[quote][bo][un]xiaojiam[/un] 在 2008-7-24 13:24 的发言:[/bo]

大哥我也知道能,不过要学完这个可能是几个也或是几年的是了!有没有些好的方法,就一个画界面能调用C的代码就行了![tk01] [tk01] [tk01] [/quote]
什么几年 几天就应该有眉目了
你楼下的这个程序研究明白了就知道未来该杂学了

David_lay 发表于 2008-7-25 08:17

回复 4# netsolo 的帖子

为什么在运行的时候会出现#include<windows.h>错误呢,这是哪里的问题?

sxn0508 发表于 2008-7-25 08:56

我猜,你用的TC吧!

页: [1]

编程论坛