当前位置: 代码迷 >> C语言 >> 如何编写界面?
  详细解决方案

如何编写界面?

热度:282   发布时间:2008-03-30 10:12:40.0
当版主果然爽
嘿嘿 ~ 别客气哈
我今天不上班,以后上班了就没时间来了
----------------解决方案--------------------------------------------------------
或许你在找这个东西...
#include <windows.h>
        
#define MAXPOINTS 1000
        
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
        

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
        
                                          PSTR szCmdLine, int iCmdShow)
        
{
        
    static TCHAR  szAppName[] = TEXT ("Connect") ;
        
    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 ("Program requires Windows NT!"),
        
                                                  szAppName, MB_ICONERROR) ;
        
            return 0 ;
        
    }
        
   
        
    hwnd = CreateWindow (szAppName, TEXT ("Connect-the-Points Mouse Demo"),
        
                                                          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 POINT pt[MAXPOINTS] ;
        
    static int            iCount ;
        
    HDC                           hdc ;
        
    in                            i, j ;
        
    PAINTSTRUCT  ps ;
        
    switch (message)
        
    {
        
    case   WM_LBUTTONDOWN:
        
            iCount = 0 ;
        
            InvalidateRect (hwnd, NULL, TRUE) ;
        
            return 0 ;
        
        
        
    case   WM_MOUSEMOVE:
        
            if (wParam & MK_LBUTTON && iCount < 1000)
        
            {
        
                           pt[iCount  ].x = LOWORD (lParam) ;
        
                           pt[iCount++].y = HIWORD (lParam) ;
        
            
        
                           hdc = GetDC (hwnd) ;
        
                           SetPixel (hdc, LOWORD (lParam), HIWORD (lParam), 0) ;
        
                           ReleaseDC (hwnd, hdc) ;
        
            }
        
                                  return 0 ;
        
        
        
           case   WM_LBUTTONUP:
        
                  InvalidateRect (hwnd, NULL, FALSE) ;
        
                  return 0 ;
        
        
        
           case   WM_PAINT:
        
                  hdc = BeginPaint (hwnd, &ps) ;
        
        
        
                  SetCursor (LoadCursor (NULL, IDC_WAIT)) ;
        
                  ShowCursor (TRUE) ;
        
      
        
                  for (i = 0 ; i < iCount - 1 ; i++)
        
                                        for (j = i + 1 ; j < iCount ; j++)
        
                                         {
        
                                  MoveToEx (hdc, pt[i].x, pt[i].y, NULL) ;
        
                                  LineTo   (hdc, pt[j].x, pt[j].y) ;
        
             }
        

                  ShowCursor (FALSE) ;
        
                  SetCursor (LoadCursor (NULL, IDC_ARROW)) ;
        
                  EndPaint (hwnd, &ps) ;
        
                  return 0 ;
        
            
        
           case   WM_DESTROY:
        
                  PostQuitMessage (0) ;
        
                  return 0 ;
        
           }
        
           return DefWindowProc (hwnd, message, wParam, lParam) ;
        
}
----------------解决方案--------------------------------------------------------
唉!我看不明啊,但还是谢谢楼上的,我只有C语言的一点基础,看来还要看多点书
----------------解决方案--------------------------------------------------------
那个是个api函数...处理鼠标得...多看看啊...大家都是这样过来的
----------------解决方案--------------------------------------------------------
很好的资源
http://www.abab123.com/bbs/down.asp?html=858885
很好的资源下载区,建议大家有机会可以去看看
----------------解决方案--------------------------------------------------------
回复 12# 的帖子
无法打开windows文件夹
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]sunkaidong[/un] 在 2008-3-30 10:23 的发言:[/bo]

那个是个api函数...处理鼠标得...多看看啊...大家都是这样过来的

呵呵,说得好,信心大增阿~~~
----------------解决方案--------------------------------------------------------
来学习的`
----------------解决方案--------------------------------------------------------
小扬州啊..我是用vc6.0...不不要用tc了..因为我不知道..tc有没有windows.h
----------------解决方案--------------------------------------------------------
我从来都没有写过界面用c/c++
----------------解决方案--------------------------------------------------------
  相关解决方案