Re[6]: Интерфейс главного окна.
От: win_lin Россия  
Дата: 02.08.04 12:17
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Аноним, Вы писали:


А>>я другой аноним


К>Зарегистрируйся, э?


уговорил


вот dll-ка

#include "mDialog.h" 
#include "resource.h" 


HWND hwnd; 
HINSTANCE hLib; 

int WINAPI DllMain(HINSTANCE hInstance,DWORD fdwReason,PVOID pvReserved) 
    { 
      hLib=hInstance; 
        return(TRUE); 
    } 

EXPORT int LoadMainDialog(HWND hwnd) 
    { 
      return (DialogBox(hLib,MAKEINTRESOURCE(IDD_MAINFORMVIEW),hwnd,(DLGPROC)DlgProcMain)); 
    } 

BOOL CALLBACK DlgProcMain(HWND hDlg,UINT iMsg,WPARAM wParam,LPARAM lParam) 
    { 
          switch(iMsg) 
         { 
            case WM_INITDIALOG: 
               return(TRUE); 
            case WM_COMMAND: 
               switch(LOWORD(wParam)) 
                  { 
                     case IDC_BUTTON1: 
                        MessageBox(hDlg,"a","a",MB_OK); 
                        return(TRUE); 
                     case IDC_BUTTON2: 
                        MessageBox(hDlg,"b","b",MB_OK); 
                        return(TRUE); 
                  } 
         } 
      return(FALSE); 
   }



а вот приложение


#include <windows.h> 
#include "mDialog.h" 
#include "resource.h" 

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); 

HWND hwnd; 
HWND hDlg; 
HINSTANCE hInst; 
HINSTANCE hLib; 

typedef HWND (*mainDlg)(HWND); 

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iCmdShow) 
   { 
      static char szAppName[]="soft"; 
      MSG msg; 
      WNDCLASSEX wndclass; 
      mainDlg mDlg; 
      ... 
      hwnd=CreateWindow(szAppName,"Soft",WS_OVERLAPPED,CW_USEDEFAULT,CW_USEDEFAULT, 
         CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); 
      hInst=hInstance; 

      hLib=LoadLibrary("mDialog.dll"); 
      if (hLib!=NULL) 
         { 
            mDlg=(mainDlg)GetProcAddress(hLib,"LoadMainDialog"); 
            if (mDlg!=NULL) 
               hDlg=((mDlg)(hwnd)); 
      
         } 
      else 
         { 
            MessageBox(NULL,"error","error",MB_OK); 
         } 

      ShowWindow(hwnd,iCmdShow); 
      UpdateWindow(hwnd); 
      ... 
      return(msg.wParam); 
   } 

LRESULT CALLBACK WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam) 
   { 
      ... 
      switch (iMsg) 
         { 
            case WM_CREATE: 
               cx=GetSystemMetrics(SM_CXSCREEN); 
               cy=GetSystemMetrics(SM_CYSCREEN); 
                ... 
}



проблема — вешаю прогу и не пойму почему
спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.