2008-09-29 12 views
6

Czy istnieje sposób zmiany/dodawania do okien Otwieranie/zapisywanie wspólnego okna dialogowego w celu dodania dodatkowej funkcjonalności?Zmiana/dodawanie elementów sterujących do okien Otwieranie/zapisywanie wspólnego okna dialogowego

W pracy mamy obszar na serwerze z setkami "folderów zadań" - po prostu zwykłe foldery okien tworzone/zarządzane automatycznie przez aplikację bazy danych w celu przechowywania informacji o zadaniu (wiadomości e-mail/zeskanowane faksy/Word docs/Arkusze kalkulacyjne/Zdjęcia itp.) Foldery są nazwane według numeru zadania.

Chciałbym rozszerzyć standardowe okno dialogowe otwierania/zapisywania za pomocą comboboxa, który wyszukuje foldery zadań na podstawie znaczników z bazy danych, tak aby cokolwiek robili moi użytkownicy, mogli łatwo znaleźć drogę do właściwego folderu roboczego, aby znaleźć/zapisać ich praca

Połączenie z bazą danych i zapewnienie funkcji wyszukiwania nie stanowi problemu, ale czy istnieje sposób na dodanie kontrolki combobox (najlepiej przy użyciu zdarzenia keypress/keydown) do okna dialogowego?

Lub Utwórz własne okno dialogowe i czy zostało ono wywołane/użyte w miejsce standardowego? to znaczy z dowolnej aplikacji zostanie wywołane moje okno dialogowe, umożliwiające łatwy dostęp do folderów zadań. Jeśli są w zasięgu wzroku, mogą szybko znaleźć folder zadań, jeśli korzystają z Notatnika, mogą łatwo znaleźć folder.

Oznaczałoby to nowy, ujednolicony sposób znajdowania folderów zadań z dowolnej aplikacji.

Idealnie ktoś zna sposób za pomocą VB/VB.net/C#, ale zgaduję, jeśli jest to możliwe, prawdopodobnie będzie C++.

Odpowiedz

0

Twój program może ustawić folder początkowy, więc jeśli znasz numer zlecenia (a stąd nazwę folderu), możesz ustawić okno dialogowe tak, aby rozpoczynało się od poprawnego folderu już otwartego. Poza tym nie sądzę, że możesz zrobić wiele bez napisania całego rozszerzenia powłoki.

5

Jak powiedział Mark Ransom, można to zrobić z flagami ENABLETEMPLATE OFN   i OFN   ENABLEHOOK. Następnie określ zasób dialogu dla elementu danych lpTemplateName o strukturze OPENFILENAME. Prawidłowe umieszczenie odpowiednich elementów sterujących wymaga odrobiny prób i błędów.

Procedura haka że piszesz będzie odbierać wiadomości okiennych specyficzne dla tego okna - jesteś szczególnie zainteresowany w komunikatach WM_NOTIFY - jest grono tych specjalnych (CDN   INITDONE, CDN   FOLDERCHANGE, etc).

Kilka razy stworzyłem kilka bardzo rozbudowanych, chciałbym dołączyć zrzut ekranu.

+1

Dzięki temu wygląda dobrze! Mam skonfigurowane haki do łapania zdarzeń myszy i naciśnięcia klawiszy wcześniej. Czy możesz wyjaśnić, jakie są podstawowe kroki, to jest Gdzie znajduje się mój kod? będzie gdzieś gdzie jest dll? Czy można to zrobić za pomocą VisualStudio.Net 2003 lub SharpDevelop? Dzięki – ajp

Powiązane problemy