Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2013, 13:45   #1
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию не выводится окно

подскажите где ошибка плиз


KWnd.h

Код:
#pragma once

#include <Windows.h>
class KWnd
{
public:
	KWnd(LPCTSTR windowName, HINSTANCE hinst, int cmdShow, 
LRESULT (WINAPI *pWndProc)(HWND,UINT,WPARAM,LPARAM), 
LPCTSTR menuName = NULL, 
int x = CW_USEDEFAULT, int у = 0, 
int width = CW_USEDEFAULT, int height = 0, 
UINT classStyle = CS_HREDRAW | CS_VREDRAW, 
DWORD windowStyle = WS_OVERLAPPEDWINDOW, 
HWND hParent = NULL); 
	HWND GetHMnd() { return hWnd; } 
	/*	~KWnd(void);*/
protected: 
HWND hWnd; 
WNDCLASSEX wc; 
};
Код:
#include"KWnd.h"

KWnd::KWnd(LPCTSTR windowName, HINSTANCE hinst, int cmdShow, 
LRESULT (WINAPI *pWndProc)(HWND,UINT,WPARAM,LPARAM), 
LPCTSTR menuName, int x, int y, int width, int height, 
UINT classStyle, DWORD windowStyle, HWND hParent) 
{
	MSG lpMsg;
char szClassName[] = "KWndClass"; 
wc.cbSize = sizeof(wc); 
wc.style = classStyle; 
wc.lpfnWndProc = pWndProc; 
wc.cbClsExtra - 0; 
wc.cbWndExtra = 0; 
wc.hInstance = hinst; 
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); 
wc.hCursor = LoadCursor(NULL, IDC_ARROW); 
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = menuName;
wc.lpszClassName = 0; 
wc.hIconSm - LoadIcon(NULL, IDI_APPLICATION); 
// Регистрируем класс окна 
if (!RegisterClassEx(&wc)) { 
char msg[100] = "Cannot register class: ";
strcat(msg, szClassName); 
 
}

// Создаем окно 
hWnd = CreateWindowEx(5,
					  TEXT("Vasya"),
					  TEXT("Hello Word 2"),
					  WS_OVERLAPPEDWINDOW,
                      10,
                      10,
					  100,
					  100,
					  
					  hParent,
					  NULL,
					  hinst,
					  NULL); 

ShowWindow(hWnd,cmdShow);
	UpdateWindow(hWnd);
	while(GetMessage(&lpMsg, NULL, 0, 0))
	{
	TranslateMessage(&lpMsg);
	DispatchMessage(&lpMsg);
	}
}

Код:
// Hel1o2.cpp 
#include <windows.h> 
#include "KWnd.h" 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR IpCmdLine, int 
nCmdShow) 
{ 
MSG msg; 
KWnd mainWnd(TEXT("A Hello2 application"), hinstance, nCmdShow, WndProc); 
while (GetMessage(&msg, NULL, 0, 0)) { 
TranslateMessage(&msg); 
DispatchMessage(&msg); 
} 
return msg.wParam; 
} 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM IParam) 
{ 
HDC hDC; 
PAINTSTRUCT ps; 
RECT rect; 
int userReply; 
switch (uMsg) 
{ 
case WM_PAINT: 
hDC - BeginPaint(hWnd, &ps); 
GetClientRect(hWnd, &rect); 
DrawText(hDC,TEXT( "Hello, World!"), -1, &rect, 
DT_SINGLELINE | DT_CENTER | DT_CENTER ); 
EndPaint(hWnd, &ps); 
break; 
case WM_CLOSE: 
         MessageBox(hWnd,TEXT( "А вы уверены в своем желании закрыть приложение?" ),TEXT(""), MB_YESNO | MB_ICONQUESTION); 
if (IDYES == userReply) 
DestroyWindow(hWnd); 
break; 
case WM_DESTROY: 
PostQuitMessage(2); 
break; 
default: 

return DefWindowProc(hWnd, uMsg, wParam, IParam); 
} 
return 0; 
}
mixon-21 вне форума Ответить с цитированием
Старый 10.11.2013, 16:47   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от mixon-21 Посмотреть сообщение
подскажите где ошибка плиз
А в чем собственно проблема?
Кстати, hDC - BeginPaint() - это что?
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Треугольное окно со сторонами A, B, C. Проверить, пройдёт ли в окно коробка цилиндрической формы (D и H) (паскаль) ihimaru Помощь студентам 5 02.10.2011 22:11
[?] Послать клавишу в чужое окно, не выводя окно на передний план. Moriarty Win Api 4 21.02.2011 05:11
Открывать окно печати, окно просмотра и изменять масштаб. segail Microsoft Office Excel 1 08.08.2010 19:31
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28