English 中文(简体)
转向制图模式
原标题:switch win32 console application to graphics mode

我想将我的双轨应用转换成图形模式,以利用StePixel功能,引线:

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
          //code to switch to graphics mode

    return 0;
}

please advice :)

问题回答

Here s a fine SetPixel() example.

创立一个双赢32应用项目,管理并编纂

//header files to include
#include<windows.h>
#include<stdlib.h>
#include<time.h>

//application title
#define APPTITLE "Hello World"

//function prototypes (forward declarations)
BOOL InitInstance(HINSTANCE, int);
ATOM MyRegisterClass(HINSTANCE);
LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);

//the window event callback function
LRESULT CALLBACK WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    char *szHello = "SetPixel";
    RECT rt;
    int x=0, y=0, n=0;
    COLORREF c;
    int j;

    switch (message)
    {
    case WM_PAINT:
        //get the dimensions of the window
        GetClientRect(hWnd, &rt);

        //start drawing on devicce context
        hdc = BeginPaint (hWnd, &ps);

        //draw some text
        DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
        j = (rand()*100);

        c = RGB(0, 0, 0);

        while( x<25000)
        {

            SetPixel(hdc,  rand()%400,  rand()%400, rand()%255);
            x++; 
        }

        //stop drawing
        EndPaint(hWnd, &ps);
        break;

    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    }
    return DefWindowProc(hWnd, message, wParam, lParam);
}

//helper function to set up the window properties
ATOM MyRegisterClass(HINSTANCE hInstance)
{
    //create the window class structure
    WNDCLASSEX wc;
    wc.cbSize = sizeof(WNDCLASSEX);

    //fill the struct with info
    wc.style                 = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc           = (WNDPROC)WinProc;
    wc.cbClsExtra            = 0;
    wc.cbWndExtra            = 0;
    wc.hInstance             = hInstance;
    wc.hIcon                 = NULL;
    wc.hCursor               = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground         = (HBRUSH) GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName          = NULL;
    wc.lpszClassName         = APPTITLE;
    wc.hIconSm               = NULL;

    //set up the window with the class info
    return RegisterClassEx(&wc);
}

//helper function to create the window and refresh it
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
    HWND hWnd;

    //create a new window
    hWnd = CreateWindow(
        APPTITLE,           //window class
        APPTITLE,       //title bar
        WS_OVERLAPPEDWINDOW,    //window style
        CW_USEDEFAULT,      //x position of window
        CW_USEDEFAULT,      //y position of window
        400,                //width of the window
        400,                //height of the window
        NULL,               //parent window
        NULL,           //menu
        hInstance,          //application instance
        NULL);              //window parameters


    //was there an error creating the window?
    if(!hWnd)
        return FALSE;

    //display the window
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    return TRUE;
}

//entry point for a Windows program
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR            lpCmdLine,
                   int              nCmdShow)
{
    //declare variables
    MSG msg;

    //register the class
    MyRegisterClass(hInstance);

    //initialize application
    if(!InitInstance (hInstance, nCmdShow))
        return FALSE;

    //set random number seed
    srand(time(NULL));

    //main message loop
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

您可以转而采用“图表模式”手段,将窗口作为使用项目设置的应用程序。 但必须将主要职能改为<条码>。

PROJECT SETTINGS >

LINKER > SYSTEM > SUBSYSTEM >Windows (SUBSYSTEM:WINDOWS)

C/C++ > PREPROCESSOR > PREPROCESSOR DEFINITIONS > WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)

and this is how your function in this case should look:

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR lpCmdLine, int nCmdShow)
{
       ///....
}




相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签