Rev 8346 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8346 | Rev 8568 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;Ïîñëåäíàÿ ìîäèôèêàöèÿ 08.12.2020 |
1 | ;Ïîñëåäíàÿ ìîäèôèêàöèÿ 02.02.2021 |
2 | ;ôàéë ñîçäàí 13.02.2009 |
2 | ;ôàéë ñîçäàí 13.02.2009 |
3 | ;Checkbox |
3 | ;Checkbox |
Line 4... | Line 4... | ||
4 | 4 | ||
5 | ;Èíèöèàëèçàöèÿ checkbox |
5 | ;Èíèöèàëèçàöèÿ checkbox |
Line 105... | Line 105... | ||
105 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
105 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
106 | align 16 |
106 | align 16 |
107 | check_box_mouse: ;îáðàáîòêà ìûøè |
107 | check_box_mouse: ;îáðàáîòêà ìûøè |
108 | pushad |
108 | pushad |
109 | mov ebp,dword [esp+36] ;çàãðóæàåì óêàçàòåëü íà ñòðóêòóðó, óêàçàòåëü ìû ïåðåäàåì â ñòåêå |
109 | mov ebp,dword [esp+36] ;çàãðóæàåì óêàçàòåëü íà ñòðóêòóðó, óêàçàòåëü ìû ïåðåäàåì â ñòåêå |
110 | mcall SF_MOUSE_GET,SSF_BUTTON ;ïðîâåðÿåì ñîñòîÿíèå êëàâèø ìûøêè. Áûëî ëè ñîáûòèå íàæàòàÿ êëàâèøà íà ìûøêå. |
110 | mcall SF_MOUSE_GET,SSF_BUTTON_EXT ;ïðîâåðÿåì ñîñòîÿíèå êëàâèø ìûøêè. Áûëî ëè ñîáûòèå íàæàòàÿ êëàâèøà íà ìûøêå. |
111 | test eax,eax ;ïðîâåðêà åñëè ó íàñ â eax=0, âûéäåì |
111 | and eax, 3 shl 8 ;ïðîâåðÿåì ëåâóþ è ïðàâóþ êíîïêè |
112 | jz .check_box_mouse_end ;îáðàáîòêà çàêîí÷èëàñü |
112 | jz .end ;îáðàáîòêà çàêîí÷èëàñü |
113 | ; Äà ñîáûòèå: íàæàòèå êëàâèøè ìûøêè ïðîèçîøëî. |
113 | ; Äà ñîáûòèå: íàæàòèå êëàâèøè ìûøêè ïðîèçîøëî. |
114 | @@: |
114 | @@: |
115 | mcall SF_MOUSE_GET,SSF_WINDOW_POSITION ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà |
115 | mcall SF_MOUSE_GET,SSF_WINDOW_POSITION ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà |
116 | ;íà âûõîäå â eax x shl 16 + y |
116 | ;íà âûõîäå â eax x shl 16 + y |
117 | ;ñðàâíåíèå âåðõíåé òî÷êè ïî Y |
117 | ;ñðàâíåíèå âåðõíåé òî÷êè ïî Y |
118 | mov ecx,dword ch_top_s ;y shl 16 +äëèííà ïî y |
118 | mov ecx,dword ch_top_s ;y shl 16 +äëèííà ïî y |
119 | mov ebx,ecx |
119 | mov ebx,ecx |
120 | shr ebx,16 ;bx = êîîðäèíàòà ïî y |
120 | shr ebx,16 ;bx = êîîðäèíàòà ïî y |
121 | cmp ax,bx |
121 | cmp ax,bx |
122 | jb .check_box_mouse_end ;óêàçàòåëü ìûøêè ìåíüøå íà÷àëüíîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà |
122 | jb .end ;óêàçàòåëü ìûøêè ìåíüøå íà÷àëüíîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà |
123 | ;ñðàâíåíèå íèæíåé òî÷êè ïî Y |
123 | ;ñðàâíåíèå íèæíåé òî÷êè ïî Y |
124 | add cx,bx ;ñëîæèì äëèííó ïî y è êîîðäèíàòó âåðõíåé òî÷êè ïî y ïîëè÷èì êîîðäèíàòó íèæíåé òî÷êè ïî Y |
124 | add cx,bx ;ñëîæèì äëèííó ïî y è êîîðäèíàòó âåðõíåé òî÷êè ïî y ïîëè÷èì êîîðäèíàòó íèæíåé òî÷êè ïî Y |
125 | cmp ax,cx |
125 | cmp ax,cx |
126 | ja .check_box_mouse_end ;óêàçàòåëü ìûøêè áîëüøå êîíå÷íîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà |
126 | ja .end ;óêàçàòåëü ìûøêè áîëüøå êîíå÷íîé êîîðäèíàòû ïî y ÷åì êîîðäèíàòà ïî Y ó áîêñà |
127 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
127 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
128 | shr eax,16 ;ñìåñòèì êîîðäèíàòó ïî Õ â íèæíóþ ÷àñòü ðåãèñòðà ò.å. â ax |
128 | shr eax,16 ;ñìåñòèì êîîðäèíàòó ïî Õ â íèæíóþ ÷àñòü ðåãèñòðà ò.å. â ax |
129 | ;ñðàâíåíèå ïî íà÷àëüíîé òî÷êå Õ |
129 | ;ñðàâíåíèå ïî íà÷àëüíîé òî÷êå Õ |
130 | mov ecx,dword ch_left_s ;çàãðóçèòü çíà÷åíèå (õ shl 16 + äëèííà) äëÿ ÷åê áîêñà |
130 | mov ecx,dword ch_left_s ;çàãðóçèòü çíà÷åíèå (õ shl 16 + äëèííà) äëÿ ÷åê áîêñà |
131 | mov ebx,ecx |
131 | mov ebx,ecx |
132 | shr ebx,16 ;bx = êîîðäèíàòà ïî X |
132 | shr ebx,16 ;bx = êîîðäèíàòà ïî X |
133 | cmp ax,bx |
133 | cmp ax,bx |
134 | jb .check_box_mouse_end ;óêàçàòåëü ìûøêè ìåíüøå íà÷àëüíîé êîîðäèíàòû ïî X ÷åì êîîðäèíàòà ïî X ó áîêñà |
134 | jb .end ;óêàçàòåëü ìûøêè ìåíüøå íà÷àëüíîé êîîðäèíàòû ïî X ÷åì êîîðäèíàòà ïî X ó áîêñà |
135 | ;ñðàâíåíèå êîíå÷íîé òî÷êè ïî X |
135 | ;ñðàâíåíèå êîíå÷íîé òî÷êè ïî X |
136 | add bx,cx ;ñëîæèì äëèííó ïî x è êîîðäèíàòó òî÷êè ïî õ ïîëó÷èì êîîðäèíàòó êîíå÷íîé òî÷êè ïî Õ |
136 | add bx,cx ;ñëîæèì äëèííó ïî x è êîîðäèíàòó òî÷êè ïî õ ïîëó÷èì êîîðäèíàòó êîíå÷íîé òî÷êè ïî Õ |
137 | add bx,word ch_sz_str ;äîáàâèì äëèííó ñòðîêè òåêñòà ñ îòñòóïîì ïðåäâàðòèåëüíî çàïèñàâ èõ â ìîìåíò èíèöèàëèçàöèè |
137 | add bx,word ch_sz_str ;äîáàâèì äëèííó ñòðîêè òåêñòà ñ îòñòóïîì ïðåäâàðòèåëüíî çàïèñàâ èõ â ìîìåíò èíèöèàëèçàöèè |
138 | cmp ax,bx |
138 | cmp ax,bx |
139 | ja .check_box_mouse_end ;óêàçàòåëü ìûøêè áîëüøå êîíå÷íîé êîîðäèíàòû ïî õ ÷åì êîîðäèíàòà ïî Õ ó áîêñà |
139 | ja .end ;óêàçàòåëü ìûøêè áîëüøå êîíå÷íîé êîîðäèíàòû ïî õ ÷åì êîîðäèíàòà ïî Õ ó áîêñà |
140 | ;åñëè âñå ïðîâåðêè áûëè óñïåøíî ïðîéäåíû ìû îáÿçàíû ïîìåíÿòü ñîñòîÿíèå áîêñà |
140 | ;åñëè âñå ïðîâåðêè áûëè óñïåøíî ïðîéäåíû ìû îáÿçàíû ïîìåíÿòü ñîñòîÿíèå áîêñà |
141 | btc dword ch_flags,1 ;ïåðåíîñ 2-ãî áèòà â cf è èíâåðñèÿ åãî |
141 | btc dword ch_flags,1 ;ïåðåíîñ 2-ãî áèòà â cf è èíâåðñèÿ åãî |
142 | jnc .enable_box ;åñëè CF=1 òî îòîáðàçèì âêëþ÷åííûé áîêñ è âûéäåì |
142 | jnc .enable_box ;åñëè CF=1 òî îòîáðàçèì âêëþ÷åííûé áîêñ è âûéäåì |
143 | push dword .check_box_mouse_end ;ôîêóñ -ïîêóñ, âåðíåìñÿ ïîñëå âûçîâà check_box_clear_ch íà ìåòêó check_box_mouse_end |
143 | push dword .end ;ôîêóñ-ïîêóñ, âåðíåìñÿ ïîñëå âûçîâà check_box_clear_ch íà ìåòêó check_box_mouse.end |
144 | jmp check_box_clear_ch ;âûêëþ÷èòü ÷åê áîêñ ò.å. íà ìåñòå çàêðàøåííîãî ïðÿìîóãîëüíèêà îòîáðàçèòü öâåò ôîíà. |
144 | jmp check_box_clear_ch ;âûêëþ÷èòü ÷åê áîêñ ò.å. íà ìåñòå çàêðàøåííîãî ïðÿìîóãîëüíèêà îòîáðàçèòü öâåò ôîíà. |
Line 145... | Line 145... | ||
145 | 145 | ||
146 | .enable_box: |
146 | .enable_box: |
147 | call check_box_draw_ch ;îòîáðàçèòü âêëþ÷åííûé ÷åê áîêñ |
147 | call check_box_draw_ch ;îòîáðàçèòü âêëþ÷åííûé ÷åê áîêñ |
148 | .check_box_mouse_end: |
148 | .end: |
149 | popad ;âîññòàíîâèòü ðåãèñòðû èç ñòåêà |
149 | popad ;âîññòàíîâèòü ðåãèñòðû èç ñòåêà |