21. januar 2001 - 23:04Der er
14 kommentarer og 1 løsning
Find hDC
hej Er der nogen som ced hvordan man kan lave et lille program som viser hDC\'en for det program/vindue som er aktivt? (altså ikke kun form1.hDC men også fx. notepad, denne computer og Explorer)
Okay, dette her returnerer hDC og hWnd for et vindue (i variablerne dc og wnd). Af en eller anden grund ændre device-nummeret sig hele tiden - jeg ved ikke om det er meningen at et vindues hDC skal ændre sig hele tiden, eller om jeg har begået en eller anden fejl? Men anyways, se om du kan bruge det her:
Declare Function GetForegroundWindow Lib \"user32.dll\" () As Long Declare Function GetWindowDC Lib \"user32\" (ByVal wnd As Long) As Long Dim dc As Long Dim wnd As Long
driis:> hDC ændrer sig hele tiden. Det er ikke en fejl i din kode. Derfor anbefaler M$ også at man ikke gemmer et hDC i en variabel men istedet \"henter\" hDC\'et fra det pågældende objekt HVER gang man skal bruge det.
>> driis Hej jeg har ikke fået testet dit eksempel endnu men er det således at det retunerer hdc\'en od hwd for det vindue som er fokuseret? >>tdaugaard Men hensyn til hvordan du siger at hdc konstant ændrer sig...Skal man så oprette sin funktion i et loop/timer så det hele tiden bliver opdateret? Hvornår ændres et vindues hdc? Er det sådan at det ændres når åbner et nyt?
krismort:> som svar på dit spm. til driis, så ja. det gør det.
Og ja, hDC ændrer sig hele tiden når der åbnes/lukkes vinduer, objekter etc. Den måde du bruger det på er f.eks. at lave driis\' kode som en sub der returnere hDC & hWnd og bruge den som (read-only) hDC property.
Declare Function GetForegroundWindow Lib \"user32.dll\" () As Long Declare Function GetWindowDC Lib \"user32\" (ByVal wnd As Long) As Long
Sub ActivehDC(hWnd As Long, hDC As Long) hWnd = GetForegroundWindow hDC = GetWindowDC(hWnd) End Sub
superinfojens:> Det kan du ikke vide ud fra hDC\'et anyway, men du kan vha. hWnd og et par andre API\'s få .Caption af vinduet hvorefter du med en simpel InStr(strCaption, \"Notepad\") eller \"Notesblok\" kan finde ud af det. Det er den mest \"clumsy\" måde at gøre det på, men jeg har ikke kendskab til at andre.
Hvad er hDC? Ud fra svarene, kan jeg gætte. Engang fik jeg hjælp til og lavede et lille prototype-program til en tasklist, der bl.a. kan gemmes som fil, - hvilket var formålet. Kildekode på http://www.jkfsoft.dk/tasklist.zip
hDC .. Device Context, men hvad det bruges til helt præcist aner jeg ikke. Men det bruges bl.a. ved BitBlt (API) funktionen samt et par andre (DrawIcon ..)
>> joern & Taugaard Så vidt jeg kan forstå bruges dDC som et hukommelses område til at gemme grafik og lignende. h står for handle og det er en værdi man skal bruge for at hente/gemme i sit hDC..
(Så vidt jeg er kommet frem til)...Vil gerne høre fra andre som måske har en bedre fortolkning 8)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.