000
05.07.2011, 15:12 Uhr
~AustralianThomas
Gast
|
Ich hab einen einfachen Code, der eigentlich nur eine durchgehende Linie zeichnen sollte. Ich hab ihn unten mal reinkopiert:
C++: |
#include <windows.h> #include <tchar.h>
// Initial declaration of global variables: static int y=10; //y-position of line remains y=10
// Initial declaration of functions:
void drawline (HDC); //Initial declaration of function which draws the line
// The main window class name. static TCHAR szWindowClass[] = _T("win32app");
// The string that appears in the application's title bar. static TCHAR szTitle[] = _T("Draw Line");
HINSTANCE hInst;
// Forward declarations of functions included in this code module: LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION)); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
if (!RegisterClassEx(&wcex)) { MessageBox(NULL, _T("Call to RegisterClassEx failed!"), _T("Win32 Guided Tour"), NULL);
return 1; }
hInst = hInstance; // Store instance handle in our global variable
HWND hWnd = CreateWindow( szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 1250, 400, NULL, NULL, hInstance, NULL );
if (!hWnd) { MessageBox(NULL, _T("Call to CreateWindow failed!"), _T("Win32 Guided Tour"), NULL);
return 1; }
ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
// Main message loop: MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
return (int) msg.wParam; }
// LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc;
switch (message) { case WM_PAINT: hdc = BeginPaint(hWnd, &ps); drawline(hdc); //Calls Function which draws the line
EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); break; }
return 0; }
void drawline (HDC hdc) //Function which draws the line { int x=10; while (x<1200) { SetPixel(hdc,x,y,RGB(0,0,0)); x=x+1; } }
|
Statt einer durchgehenden Linie bekomme ich aber sowas:
____________ ______________ __________
Allerdings bekomme ich die unterbrochene Linie nur auf meinem privaten Laptop. Wenn ich den gleichen Code fuer meinen Arbeitslaptop benutze, bekomme ich eine durchgehende Linie. An was liegt das??????
Viele Dank im Voraus fuer euere Hilfe!!
Thomas Dieser Post wurde am 06.07.2011 um 07:47 Uhr von FloSoft editiert. |