project选的是windows console application并且是an application that supports MFC
要在console程序运行期间弹出一个窗口,并且在窗口中作图小生对VC非常生疏 哪位能详细地指点一下?

解决方案 »

  1.   

    因为是MPI的并行程序 不用console的话传参会很麻烦kugou123能说得详细一点吗?能不能帮忙写一小段创建窗口并在窗口里随便画根直线的代码吗?谢谢
      

  2.   

    yun,随便找个SDK写的窗口程序就可以了。下面是一个样例:
    #include "stdafx.h"
    #include <windows.h>
    #include <math.h>#define NUM 1000
    #define TWOPI (2 * 3.14159)LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    static int  cxClient, cyClient ;
    HDC         hdc ;
    int         i ;
    PAINTSTRUCT ps ;
    POINT       apt [NUM] ;
         
    switch (message)
    {
    case  WM_SIZE:
    cxClient = LOWORD (lParam) ;
    cyClient = HIWORD (lParam) ;
    return 0 ;
              
    case  WM_PAINT:
    hdc = BeginPaint (hwnd, &ps) ;
              
    MoveToEx (hdc, 0, cyClient / 2, NULL) ;
    LineTo   (hdc, cxClient, cyClient / 2) ;
              
    for (i = 0 ; i < NUM ; i++)
              {
    apt[i].x = i * cxClient / NUM ;
    apt[i].y = (int) (cyClient / 2 * (1 - sin (TWOPI * i / NUM))) ;
              }
              
    Polyline (hdc, apt, NUM) ;
    return 0 ;
              
    case  WM_DESTROY:
    PostQuitMessage (0) ;
    return 0 ;
      }
    return DefWindowProc (hwnd, message, wParam, lParam) ;
    }int main(int argc, char* argv[])
    {
        static TCHAR szAppName[] = TEXT ("SineWave") ;
        HWND  hwnd ;
        MSG   msg ;
        WNDCLASS  wndclass ;
        
        wndclass.style = CS_HREDRAW | CS_VREDRAW ;
        wndclass.lpfnWndProc= WndProc ;
        wndclass.cbClsExtra = 0 ;
        wndclass.cbWndExtra = 0 ;
        wndclass.hInstance = 0 ;
        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 ("Sine Wave Using Polyline"),
            WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT, CW_USEDEFAULT,
            CW_USEDEFAULT, CW_USEDEFAULT,
            NULL, NULL, 0, NULL) ;
        ShowWindow (hwnd, SW_SHOW) ;
        UpdateWindow (hwnd) ;
        
        while (GetMessage (&msg, NULL, 0, 0))
        {
            TranslateMessage (&msg) ;
           DispatchMessage (&msg) ;
        }
        return msg.wParam ;
    }