Posted By: Quasimodo (Quasimodo) on 'CZprogram' Title: Visual C++ nastaveni fokusu Date: Thu Jun 5 14:14:27 2003 Zdar, s visual C++ zacinam, takze prosim pomalu a jednoduse... Mam okno dialogu. V nem zmacknu tlacitko. To vyvola metodu, ktera mimo jine na konci ma volani CMereni dlg; dlg.DoModal(); to vytvori podle ocekavani novy dialog. V nem potrebuju, aby uzivatel mohl jako default jen zmacknout enter a rovnou se vyvolala akce, ktera normalne prislusi tlacitku. Nejjednodussi mi prislo, dat tomu tlacitku focus a zbytek uz by byl bez problemu. Takze jsem do OnInitDIalog napsal napred jen SetFocus() a zmenil return na FALSE. Vysledkem bylo, ze se tlacitko nevybralo a stisk enteru (pravdepodobne) vytvoril nove dialogove okno. (Pravdepodobne rikam proto, ze ten dialog mi zabira celou screenu handheldu a nedokazu s nim hybat, ale musel jsemproste nekolikrat klepnout na tlacitko zavrit, nez skutecne zmizelo. Pocet stisku tlacitka zavrit koresponduje s poctem otevrenych oken, pokud se opravdu otevirala.) Takze jsem zkusil pouzit nejake dalsi funkce, ktere mi podle popisu vzdalene pripadaly, ze by mohly zpusobit to co chci. Soucasny stav je: CheckDlgButton(IDC_BUTTON1, BST_CHECKED); CWnd *ptr; ptr = GetDlgItem(IDC_BUTTON1); ASSERT(ptr != NULL); ptr->SetActiveWindow(); ptr->SetFocus(); // Spustit casovac ASSERT(SetTimer(1, 100, 0) != 0); return FALSE; // return TRUE unless you set the focus to a control Porad to nedela co chci, navic to hazi Assertion Failed v afxtempl.h. Ani moc nechci vedet co je to za chybu, ale spis jak se tahle primitivnost ma delat. Dekuji za pomoc. - Clovek je nejpomalejsi zname zarizeni typu I/O. Quasimodo