Discussione:
Programmazione C Problema con le finestre winapi
(troppo vecchio per rispondere)
Nero23
2014-01-12 20:11:46 UTC
Permalink
Sistema operativo Windows 8 a 64 Bit Linguaggio di programmazione C/C++.

Con Codeblocks non riesco a visualizzare una finestra con le api di
windows se queste sono realizzate utilizzando il file .RC (in poche
parole, i Dialod boxes).
Lo stesso codice funziona su un sistema a 32 bit (provato su Windows 7 a
32 Bit)


Il compilatore visualizza questo messaggio:
-----------------------------------
Skipping file (no compiler program set): resource.rc
g++.exe -o bin\Debug\Test.exe obj\Debug\main.o -lgdi32 -luser32
-lkernel32 -lcomctl32 -mwindows
Output file is bin\Debug\Test.exe with size 54.51 KB
Process terminated with status 0 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
----------------------------------------------





Nessun problema se creo la finestra utilizzando la classica funzione
CreateWindowEx...


Sapete darmi una dritta?







Grazie

nero23


Riporto il codice....




// FILE main.c
#include <windows.h>
#include "resource.h"

BOOL CALLBACK DialogProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY: PostQuitMessage(0);
return TRUE;
case WM_CLOSE:
DestroyWindow (hwnd);
return TRUE;
}

return FALSE;
}

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *
cmdParam, int cmdShow)
{
HWND handle = 0;
handle = CreateDialog (hInst, MAKEINTRESOURCE (IDD_DIALOG1), 0,
(DLGPROC)DialogProc);

if (!handle)
{
MessageBox(NULL, "Dialog Box", "Errore!", MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(handle, cmdShow);
UpdateWindow(handle);

MSG message;
while(GetMessage(&message, NULL, 0, 0) > 0)
{
TranslateMessage(&message);
DispatchMessage(&message);
}

return message.wParam;
}






// FILE resource.h
#define IDD_DIALOG1 101
#define IDC_BUTTON1 1007
#define IDC_BUTTON2 1008
#define IDC_BUTTON3 1009







// FILE resource.rc
#include "resource.h"
#include "afxres.h"


IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 100, 100

STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
BEGIN
PUSHBUTTON "Pulsante 1",IDC_BUTTON1 ,10,10,40,20
PUSHBUTTON "Pulsante 2",IDC_BUTTON2 ,10,30,40,20
PUSHBUTTON "Pulsante 3",IDC_BUTTON3 ,10,50,40,20
END
Andrea Rimicci
2014-01-13 09:22:43 UTC
Permalink
... una finestra ... realizzate utilizzando il file .RC...
...Skipping file (no compiler program set): resource.rc
...
Sapete darmi una dritta?
Forse non e` stato usato il tuo resource.rc
--
andrea - ri mi cci, name
Nero23
2014-01-14 20:30:16 UTC
Permalink
Post by Andrea Rimicci
Forse non e` stato usato il tuo resource.rc
non capisco perchè sotto Windows 7 a 64 Bit funziona perfettamente e
sotto Windows 8 no...
eppure faccio le stesse operazioni...

Loading...