Souci avec l'API Win32

Souci avec l'API Win32 - C++ - Programmation

Marsh Posté le 20-11-2005 à 01:02:56    

Bonsoir à tous,
 
j'ai un souci dans l'utilisation de Win32.
 
Je développe sous BCB6.
 
J'ai le fichier RC suivant, qui me permet d'ajouter un checkbox à une boite de dialogue standard "Enregistrer"
 

MYDIALOG DIALOG 0, 0, 200, 40
STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
FONT 8, "MS Sans Serif"
BEGIN
CONTROL         "Offset audio to maintain a/v sync", 1000
                "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5, 15, 180, 5
END


 
J'ai la classe suivante qui me permet de gérer cette modification:
 

Code :
  1. class TExSaveDialog : public TSaveDialog
  2. {
  3. public:
  4.         __fastcall TExSaveDialog(TComponent *Owner): TSaveDialog(Owner)
  5.         { Template = "MYDIALOG"; }
  6.         BOOL __fastcall TaskModalDialog(void * DialogFunc, void *DialogData)
  7.         {
  8.         ((LPOPENFILENAMEA)DialogData)->Flags = ((LPOPENFILENAMEA)DialogData)->Flags | OFN_ENABLETEMPLATE;
  9.         ((LPOPENFILENAMEA)DialogData)->lpTemplateName = "MYDIALOG";
  10.         ((LPOPENFILENAMEA)DialogData)->hInstance = (void*)FindClassHInstance(this->ClassType());
  11.         ((LPOPENFILENAMEA)DialogData)->lpfnHook = OFNHookProc;
  12.         return TCommonDialog::TaskModalDialog(DialogFunc, DialogData);
  13.         }
  14. };


 
Je l'appelle comme suit:
 

Code :
  1. TExSaveDialog *Dialog = new TExSaveDialog(this);
  2.         if (Dialog->Execute())
  3.         {
  4.                 //Récupération de l'état du checkbox
  5.                 switch (IsDlgButtonChecked(Dialog->Handle,1000))
  6.                 {
  7.                         case BST_CHECKED:
  8.                                 ShowMessage("checked" );
  9.                                 break;
  10.                         case BST_INDETERMINATE:
  11.                                 ShowMessage("indeterminate" );
  12.                                 break;
  13.                         case BST_UNCHECKED:
  14.                                 ShowMessage("unchecked" );
  15.                                 break;
  16.                 }
  17.         }
  18.         delete Dialog;


 
Le souci est qu'il m'indique tout le temps Unchecked...
 
Quel est le souci?

Reply

Marsh Posté le 20-11-2005 à 01:02:56   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed