cs_parki
Messages postés75Date d'inscriptionmardi 29 juillet 2008StatutMembreDernière intervention25 mars 2019
-
10 janv. 2013 à 11:21
cs_parki
Messages postés75Date d'inscriptionmardi 29 juillet 2008StatutMembreDernière intervention25 mars 2019
-
13 janv. 2013 à 12:27
Bonjour,je veux utiliser plusieurs boites de dialogues dans un prog MASM.J'affiche la seconde boite de dialogue grâce au menu de la première,mais lorsque je ferme la seconde boite de dialogue,la fenêtre principale (=la première dialog box) n'a plus le focus.
J'ai essayé plusieurs combinaison possibles (fenetre normale qui ouvre une dialogueBox non modale,dialog box non modale qui en ouvre une autre,dialog box non modale qui ouvre une dialog box modale) mais j'ai toujours le même problème;à la fermeture de la seconde dialog box,la fenétre parent est inactivée.
J'ai étudié de près les tuts de ICZELION sur le sujet,les dialog box prédefinies de windows (GetOpenFileName,..)fonctionnent sans problème,mais dès que j'essaie de travailler avec deux dialogbox perso en ressource,j'ai le même problème.
Je suis sous windows XP.
voici le code asm;
.386
.model flat,stdcall
option casemap:none
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
WndProc proto :DWORD,:DWORD,:DWORD,:DWORD
;proc des DBOX secondaires
DBOX_CONFIGURATION proto :DWORD,:DWORD,:DWORD,:DWORD
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\comctl32.inc
includelib \masm32\lib\comctl32.lib ;lib des controles windows
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
ClassName db "DLGCLASS",0
MenuName db "AU_MENU",0
DlgName db "MyDialog",0
DlgName1 db "DBOX_CONFIG",0
AppName db "Our First Dialog Box",0
wc WNDCLASSEX <48,CS_HREDRAW or CS_VREDRAW,WndProc,0,DLGWINDOWEXTRA,hInstance,0,0,COLOR_WINDOW+1,MenuName,ClassName,0>
;dialog Box non modale (peut donner le focus à une autre)
invoke CreateDialogParam,hInstance,ADDR DlgName,NULL,addr WndProc,NULL
mov HDL_DBOX_PRINCIPALE,eax
;dialog box
MyDialog DIALOGEX 6,6,609,459
CAPTION "Our First Dialog Box"
FONT 8,"MS Sans Serif",400,0
STYLE 0x10CF0000
EXSTYLE 0x00000000
CLASS "DLGCLASS"
BEGIN
;CONTROL "",IDC_TAB1,"SysTabControl32",0x50018200,16,16,556,419,0x00000000
END
;menu de la dialogbox
AU_MENU MENU
BEGIN
POPUP "Fichiers"
BEGIN
MENUITEM "Nouveau Projet", IDM_Nouveau_projet
MENUITEM "Ouvrir Projet", IDM_Ouvrir_projet
MENUITEM "Enregistrer Projet",IDM_Enregistrer_projet
MENUITEM "Supprimer Projet",IDM_Supprimer_projet
MENUITEM "Ouvrir Fichier",IDM_Ouvrir_fichier
MENUITEM "", , 0x0800 /*MFT_SEPARATOR*/
MENUITEM "E&xit", IDM_EXIT
END
;IDD_DLG1 DIALOGEX 6,6,243,132
DBOX_CONFIG DIALOGEX 6,6,243,132
CAPTION "Configuration"
FONT 8,"MS Sans Serif",400,0
STYLE 0x10CF0000
EXSTYLE 0x00000000
BEGIN
CONTROL " ASM 16 Bits",IDC_RBN1,"Button",0x50010009,18,16,66,12,0x00000000
CONTROL " ASM 32 Bits",IDC_RBN2,"Button",0x50010009,130,16,66,12,0x00000000
CONTROL " Suppression des .OBJ",IDC_CHK1,"Button",0x50010003,66,72,88,12,0x00000000
CONTROL " Suppression des .LST",IDC_CHK2,"Button",0x50010003,66,96,88,12,0x00000000
CONTROL " Nom du répertoire du projet",IDC_STC1,"Static",0x50001000,14,46,98,9,0x00000000
CONTROL "",IDC_EDT1,"Edit",0x50010000,118,44,98,13,0x00000200
PUSHBUTTON "OK",IDC_quit_config,10,10,52,13
END
ToutEnMasm
Messages postés591Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention13 décembre 20223 12 janv. 2013 à 18:09
Les dialog box n'ont pas le même comportement qu'une fenêtre.
Pour ce genre de problême il faut chercher..
Essayer setfocus (sur la main dialog) en fermant la dialog fille.
On peut essayer une propriété child.
cs_parki
Messages postés75Date d'inscriptionmardi 29 juillet 2008StatutMembreDernière intervention25 mars 2019 13 janv. 2013 à 12:08
j'ai le même problème en rendant le focus à la DialogBox principale quand je quitte .
Je vais chercher du coté des propriétées child.
Merci du conseil.