Форум: Форум C++Разное
Новые темы: 00
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Оконный Hello world!
 
 автор: Askerrr   (09.02.2007 в 08:04)
 
 

Увидел тему про консольный Hello world! Попробовал, получилось. ггг пол часа радовался ).
А как сделать оконное приложение с надписью Hello world. Я пользуюсь Visual Studio (.NET). В каком проекте это делать? Win32 project или Windows Forms? Не совсем понятно что для чего.

  Ответить  
 
 автор: alex19921992   (09.02.2007 в 13:51)   письмо автору
 
   для: Askerrr   (09.02.2007 в 08:04)
 

Делай Вин32 апликайшен и пиши:

#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "HelloWin";
HWND hwnd;
MSG msg;
WNDCLASSEX wndclass;
wndclass.cbSize = sizeof(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;
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
RegisterClassEx(&wndclass);
hwnd = CreateWindow(
szAppName, // window class name
"The Hello Program"// window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL
); // creation parameters
ShowWindow(hwnd, iCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(iMsg)
{
case WM_CREATE:
//PlaySound("hellowin.wav", NULL, SND_FILENAME | SND_ASYNC);
return 0;

case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, "Hello, Windows 95!", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, iMsg, wParam, lParam);
}

  Ответить  
 
 автор: cheops   (09.02.2007 в 14:03)   письмо автору
14.9 Кб
 
   для: Askerrr   (09.02.2007 в 08:04)
 

Существует несколько приёмов, создания оконных приложений, например, Windows API компилируется под любым компилятором, приложение с использованием специфичной библиотеки MFC, VCL компилируется в своей среде. Под Windows API разрабатывать приложения сложнее, с использованием библиотеки проще... однако, Windows API знать следует - не всё реализовано в библиотеках, да и понимая как они работают можно создавать более изящные приложения.
1. Windows API. Открываем новый чистый проект File->New->Project, выбираем в проектах Visual С++ Projects тип проекта Win32 Project, в окне настройки выбираем Application Settings, отмечаем галку Empty project, нажимаем кнопку Finish. В source files добавляем новый C++ файл main.cpp, а в нём пишем
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, 
                   HINSTANCE hPrevInstance, 
                   PSTR szCmdLine, 
                   int iCmdShow)
{
  MessageBox(NULL, "Hello world""Hello world", MB_OK);
}

PS Проект Visual Studio .NET 2003 во вложении.

  Ответить  
 
 автор: cheops   (09.02.2007 в 14:12)   письмо автору
76.5 Кб
 
   для: Askerrr   (09.02.2007 в 08:04)
 

2. Более традиционный способ заключается в использовании MFC-приложения. Создаём новый проект, выбирая тип MFC Application, в разделе Application Type выбираем тип "Dialog based" (диалоговое окно). Нажимаем кнопку Finish, идём на вкладку resource и в разделе Dialog выбираем главное диалоговое окно. Двойным щелчком нажимаем на кнопку OK и пишем в обработчике кнопки следующие строки
MessageBox("Hello world");
OnOK();

PS Проект Visual Studio .NET 2003 во вложении.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования