Перейти к содержимому

Фото
- - - - -

C++ WinApi


  • Вы не можете создать новую тему
  • Please log in to reply
10 ответов в этой теме

#1 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 18 Декабрь 2007 - 15:47

надо на фотме сделать кнопку и чтобы когда на нее нажимали появлялась и исчезала картинка=))
тоесть первый раз нажали она пояаилась и потом еще нажали она проопала=)) Как это сделать?

код формы

//////////////////////////////////////////////////////////////////////////

#include <windows.h>

LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS w;
memset(&w, 0, sizeof(WNDCLASS));
w.style = CS_HREDRAW | CS_VREDRAW;
w.lpfnWndProc = WndProc;
w.hInstance = hInstance;
w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
w.lpszClassName = "My Class";

RegisterClass(&w);

hwnd = CreateWindow("My Class", "My title", WS_OVERLAPPEDWINDOW,
300, 200, 200, 180, NULL, NULL, hInstance, NULL);

ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);

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

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
switch (Message){
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, Message, wparam, lparam);
}
return 0;
}
  • 0

#2 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 18 Декабрь 2007 - 17:15

А чего такой изврат? Почему именно на winapi?
А что значит должна появится? В отдельном окне? Или на том-же? Откуда картинка? Из ресурсов или подгружается с диска?
  • 0

#3 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 18 Декабрь 2007 - 18:45

на этом же окне и картинка из ресурсов...любая=))
  • 0

#4 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 22 Декабрь 2007 - 12:20

специалистов нету?
  • 0

#5 dronius

dronius
  • Пользователь
  • 153 сообщений

Отправлено 22 Декабрь 2007 - 19:42

я всех деталей не вспомню уже, но вроде несколько вариантов есть - или ты делаешь все с полного нуля, или пользуешься услугами ресурсов, или же еще и применяешь ОО (соответственно, MFC)

в первом случае - тебе нужно создать внутри основного окна еще 2 чайлда - одного с классом "кнопка" и другого с классом "статик", который будет использоваться для прорисовки картинки. далее, при получении в главную оконную процедуру команды от кнопки, загружаешь битмап из файла и присваиваешь его окну "статик".

во втором случае можно создать окошко из диалогового ресурса, и кнопка с картинкой уже будут в качестве компонентов диалога. жизнь немного упростится, но оконная процедура по идее такой же останется.

в третьем случае предлагается набор готовых классов, которые частично скрывают все мясо графического API

вот только на пороге 2008 - зачем кому-то потребовалось вспомнить такую древность?
  • 0

#6 Lynx

Lynx
  • Пользователь
  • 162 сообщений
  • Откуда:Таллинн

Отправлено 23 Декабрь 2007 - 01:33

задание в ИАТИ такое )
мне, кстати, тоже интересно..
  • 0

#7 dronius

dronius
  • Пользователь
  • 153 сообщений

Отправлено 23 Декабрь 2007 - 16:59

довольно тупое задание на штудирование платформенной документации

чем предлагаю вам и занятся - все есть в MSDN (msdn.microsoft.com)
  • 0

#8 oogle

oogle
  • Пользователь
  • 144 сообщений
  • Откуда:Flexi MBS R&D NSN

Отправлено 24 Декабрь 2007 - 04:52

куйня какаето тут у вас
  • 0

#9 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 24 Декабрь 2007 - 14:58

вот и я об этом=)) кнопку то легко сделать а вот с картинкой и событием для кнопки ни понятно как сделать=))
  • 0

#10 dronius

dronius
  • Пользователь
  • 153 сообщений

Отправлено 25 Декабрь 2007 - 10:11

готов сделать за ??? :)
  • 0

#11 memfis

memfis
  • Пользователь
  • 169 сообщений
  • Откуда:Таллинн

Отправлено 13 Январь 2008 - 13:11

а есть у кого нибудь код рабочей програмки типо цвета смешивать или рисовалка какая нибудь? или что нибудь другое? Очень надо плизззз
  • 0