Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка модальных диологов! 
V
    Опции темы
dizel003
Дата 17.4.2008, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



Начал писать программу для просмотра графических функций! Все работает но теперь не могу создать модальный диолог! smile  smile   Уже 1000 раз пытался но ничего не получается smile 

Вот начальный текст программы 
Код

// Äåìîíñòðàöèÿ ïàíåëè èíñòðóìåíòîâ
#include <windows.h> 
#include <windowsx.h>
#include <Commctrl.h> 
#include <String.h> 
#include <stdio.h>
#include "Menu.h"
#define   NUMBUTTONS  6

void InitToolBar(); // Ôóíêöèÿ èíèöèàëèçàöèè ïàíåëè
LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM); 
BOOL CALLBACK DialogFunc (HWND,UINT,WPARAM,LPARAM);
HINSTANCE hInst;

char szWinName[] = "ÌîåÎêíî";  // Èìÿ êëàññà îêíà
int maxX, maxY;     // Ðàçìåðû ýêðàíà
HDC     memdc;      // DC âèðòóàëüíîãî îêíà
HBITMAP hbit;       // Ðàñòð - ýòî âèðòóàëüíîå îêíî
HBRUSH  hbrush, hOldbrush; // Äåñêðèïòîðû êèñòåé
HPEN    hOldpen;    // Äåñêðèïòîð ïðåæíåãî ïåðà
HPEN hRedpen,hGreenpen,hBluepen,hYellowpen; // Ïåðüÿ
TBBUTTON tbButtons[NUMBUTTONS];
HWND tbwnd;         // Äåñêðèïòîð ïàíåëè èíñòðóìåíòîâ

 

int WINAPI WinMain (HINSTANCE hThisInst,HINSTANCE hPrevInst,LPSTR lpszArgs,int nWinMode)

   {

   HWND hwnd; 
   MSG msg; 
   WNDCLASS wcl; 
   HACCEL hAccel;



   // Îïðåäåëèòü êëàññ îêíà

   wcl.hInstance=hThisInst;   // Äåñêðèïòîð ïðèëîæåíèÿ 
   wcl.lpszClassName=szWinName;  // Èìÿ êëàññà îêíà
   wcl.lpfnWndProc=WindowFunc;   // Ôóíêöèÿ îêíà
   wcl.style=0;                  // Ñòèëü ïî óìîë÷àíèþ
   wcl.hIcon=LoadIcon(NULL,IDI_APPLICATION); // Èêîíêà  
   wcl.hCursor=LoadCursor(NULL,IDC_ARROW) ;  // Êóðñîð 
   wcl.lpszMenuName="MYMENU";                // Ìåíþ
   wcl.cbClsExtra=0;             // Áåç äîïîëíèòåëüíîé 
   wcl.cbWndExtra=0;             // èíôîðìàöèè

   // Îïðåäåëèòü çàïîëíåíèå îêíà áåëûì öâåòîì

   wcl.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
   if(!RegisterClass(&wcl)) // Çàðåãèñòð. êëàññ îêíà
      return 0;

   // Ñîçäàòü îêíî

   hwnd=CreateWindow(szWinName,"Ðàáîòà ñ ïàíåëüþ èíñòðóìåíòîâ Toolbar",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,HWND_DESKTOP,NULL,hThisInst,NULL); // Áåç äîïîëèò. àðãóìåíòîâ 

 

   hAccel=LoadAccelerators(hThisInst,"MYMENU");
   InitToolBar(); // Èíèöèàëèçàöèÿ ïàíåëè èíñòðóìåíòîâ
   InitCommonControls();  // Îáùèå ýëåìåíòû óïðàâëåíèÿ
   tbwnd=CreateToolbarEx(hwnd,WS_VISIBLE|WS_CHILD|WS_BORDER,ID_TOOLBAR, NUMBUTTONS,hThisInst, IDTB_BMP,tbButtons,NUMBUTTONS,0, 0, 16, 16,sizeof(TBBUTTON));

   ShowWindow(hwnd,nWinMode) ; // Ïîêàçàòü îêíî è  
   UpdateWindow(hwnd);      // ïåðåðèñîâàòü ñîäåðæèìîå

   // Çàïóñòèòü öèêë îáðàáîòêè ñîîáùåíèé

   while(GetMessage (&msg,NULL,0,0))
      if(!TranslateAccelerator(hwnd,hAccel,&msg))
         {
         TranslateMessage(&msg); // Èñïîëüç.Êëàâèàòóðû
         DispatchMessage (&msg); // Âîçâðàò ê Windows 
         }

   return msg.wParam;

   }

 

// Ñëåäóþùàÿ ôóíêöèÿ âûçûâàåòñÿ îïåðàöèîííîé ñèñòåìîé 

// Windows è ïîëó÷àåò â êà÷åñòâå ïàðàìåòðîâ ñîîáùåíèÿ

// èç î÷åðåäè ñîîáùåíèé äàííîãî ïðèëîæåíèÿ

 

LRESULT CALLBACK WindowFunc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

   {

   HDC hdc;

   PAINTSTRUCT paintstruct;

   switch(message)

      {

     

      case WM_COMMAND:

         switch(LOWORD(wParam))

            {
                {
         case IDM_DIALOG:
             DialogBox(hInst,"MYDLG",hwnd,DialogFunc);
             break;
                }


И так далее! Именно на диологе я и торможусь в этой программе , хотя вот так все работает case IDM_ALPHA:
                    MessageBox(hwnd,"Альфа","",MB_OK);
                    break;



Вот ошибки (2)
Linking...
NewProgram.obj : error LNK2001: unresolved external symbol "int __stdcall DialogFunc(struct HWND__ *,unsigned int,unsigned int,long)" (?DialogFunc@@YGHPAUHWND__@@IIJ@Z)
Debug/NewProgram.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

NewProgram.exe - 2 error(s), 0 warning(s)



Если кто знает из за чего не работают диологи напишите пожалусто очень срочно нужно!
Заранее спасибо!
PM MAIL   Вверх
dizel003
Дата 17.4.2008, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



 smile Кажется разобрался   И было так просто smile  smile  smile    В программе в конце не написал функцию диолога 

BOOL CALLBACK DialogFunc (HWND hdwnd,UINT message,WPARAM wParam,LPARAM lParam)


Теперь все, ошибок нет! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.