មករា
គ្រប់គ្រង Mouse តាមរយៈ C++
រៀបរៀងដោយ៖ លោក សំ កក្កដា នាយកទស្សនាវដ្ដី និងថ្នាក់បណ្តុះបណ្តាលអាន-ANT និងកែសម្រួលឡើងវិញដោយលោក អួន ហ៊ិនស៊ី នៅខែ ធ្នូ ឆ្នាំ ២០១៦
ក្នុងការបង្កើត Software មិនថាលោកអ្នកប្រើប្រាស់ភាសាណាមួយនោះទេ ការគ្រប់គ្រង Interface ជារឿងមួយ ដែលត្រូវតែគិតផងដែរ ។ ទន្ទឹមនឹងនោះ ភាពងាយស្រួលរបស់ User ទៅលើការបញ្ជារ ឬ បញ្ចូលទិន្នន័យ តាមរយៈ Interface ក៏នឹងកើតមានផងដែរ ។
Mouse គឺជាឧបករណ៍ input មួយដែលគ្រប់គ្នាប្រើប្រាស់កុំព្យូទ័រស្ទើរមិនអាចអត់វាបាន ព្រោះតាមរយៈ pointer របស់វាគេនឹងចុចទៅលើទីតាំងណាមួយនៃ interface បានយ៉ាងលឿន ។ សម្រាប់កម្មវិធីដែលបង្កើតឡើងដោយដំណើការក្នុង Windows Forms វាពុំមែនជាបញ្ហាឈឺក្បាលរបស់អ្នក Programmers ឡើយ ប៉ុន្តែសម្រាប់ កម្មវិធីដែលដំណើការក្នុង DOS mode (Console Applications) Mouse ទើបជាបញ្ហាដែលត្រូវបានគិត ជាពិសេស លោកអ្នកដែលបាននឹងកំពុងរៀនភាសា Pascal, QBasic, C, ឬ C++ តែងតែចោទជាសំណួរថាតើ “ខ្ញុំត្រូវប្រើ code យ៉ាងម៉េចទើបអាចបញ្ជា Mouse បាន?”
ឥឡូវនេះវាលែងជាបញ្ហាសំខាន់របស់លោកអ្នកទៀតហើយសម្រាប់ការគ្រប់គ្រង Mouse ក្នុងកម្មវិធីរបស់លោកអ្នក តាមរយៈទស្សនាវដ្ដី និងថ្នាក់បណ្តុះបណ្តាលកុំព្យូទ័រអាន-ANT អ្នកនឹងបានដឹងដោយងាយបំផុត ។
ជាធម្មតា Mouse អាចត្រូវបានប្រើទាំងក្នុង Text modeនិង Graphics mode ប៉ុន្តែ ជាទូទៅច្រើនប្រើនៅក្នុង Graphics mode ព្រោះ interface ច្រើនរចនាឡើងដោយ Functions ឬ classes នៅក្នុង Graphics libraries ។
មុននឹងលោកអ្នកស្វែងយល់ពី code ដែលបញ្ជារ mouse សូមមើលនូវមុខងារ Word register សំខាន់ៗរបស់ mouse ដែលគ្រប់គ្រងដោយ interrupt លេខ ៥១ (ក្នុងគោល១៦ គឺស្មើនឹង 0x33)
អនុវត្តន៍កូដ៖
កូដខាងក្រោមនឹងបង្ហាញពីរបៀបកំណត់ផ្ទៃនិងព្រំដែនដែល mouse អាចបំលាស់ទី ការបង្ហាញពីទីតាំង អាប់ស៊ីសនិងអ័រដោនេរ ព្រមទាំងស្ថានភាពប្រភេទប៊ូតុង mouse ដែលបានចុច ។ ហើយ ដើម្បីអាចដំណើរការកូដខាងក្រោមបានយើងអាចប្រើ Software Turbo C++ 4.0 ដែលអាចដំណើរការនៅលើ Windows 7/8/8.1 ព្រោះកូដនេះវាអាចដំណើរការស្គាល់តែជាមួយ Compiler 16 bits តែប៉ុណ្ណោះ ។
បន្ទាប់ពីលោកអ្នកចុច Link ខាងលើ ដើម្បី Download ឬចុចទីនេះ ដើម្បីធ្វើការ Download កម្មវីធី Turbo C++ 4.0 ដើម្បីដំឡើងរួចហើយ សូមបើកកម្មវីធី Turbo C++ 4.0 Windows 7 Windows 8 64Bit Version ដើម្បីធ្វើការអនុវត្តទាំងអស់គ្នាជាមួយកូដ C++ តាមរយៈទស្សនាវដ្ដីអាន-ANT ដូចខាងក្រោមនេះ៖
ពន្យល់កូដ៖
- dos.h ជា header file ចាំបាច់សម្រាប់ REGS union និងការប្រើប្រាស់ delay function
- int86 ជា software interrupt function ប្រើសម្រាប់ register ទៅកាន់ software interrupt (registers) ហើយនឹងផ្ដល់មកវិញនូវតម្លៃ AX ។
Syntax: int int86 (int intrnum, union REGS *inregs, union REGS *outregs) ;
- delay ជា function សម្រាប់ពន្យាការអនុវត្តន៍កូដដោយគិតពេលវេលាជា milliseconds ។
Syntax: void delay (unsigned milliseconds) ;
- DETECT នឹងចាប់យកដោយស្វ័យប្រវត្តិទៅកាន់ BGI graphics driver
- initgraph ជា function សម្រាប់ចាប់ផ្តើម graphics system mode
Syntax: void initgraph (int *graphDriver, int *graphMode, char *pathDriver) ;
- outtextxy ជា function សម្រាប់កំណត់ទីតាំងកូអ័រដោនេរក្នុង graphics mode ដើម្បីបង្ហាញ text
Syntax: void outtextxy (int x, int y, char *text) ;
- setcolor សម្រាប់កំណត់ពណ៌រូបភាព
Syntax: void setcolor (int color) ;
- settextstyle សម្រាប់កំណត់ font, ទិសដៅ បង្ហាញតួអក្សរ និងទំហំ font
Syntax: void settextstyle (int font, int direction, int size) ;
- setfillstyle សម្រាប់កំណត់ផ្ទៃ និងដាក់ពណ៌ឲ្យផ្ទៃ
Syntax: void setfillstyle (int pattern, int color) ;
- itoa សម្រាប់បំប្លែងតម្លៃតម្លៃ integer ទៅ text ក្នុងប្រព័ន្ធគោលណាមួយ
Syntax: void itoa (int value, char *text, int base) ;
លទ្ធផលពេល Run កូដខាងលើនៅក្នុង Turbo C++ 4.0 ៖
· ពេលមិនទាន់ធ្វើការបំលាស់ទីរបស់ Mouse ដោយការបញ្ជាដោយ User
ការធ្វើបំលាស់ទីរបស់ Mouse ដោយការបញ្ជាដោយ User
*** ដកស្រង់ចេញពីទស្សនាវដ្ដីអាន-ANT ច្បាប់ទី ១០ ប្រចាំខែ កញ្ញា ដល់តុលា ឆ្នាំ ២០០៩ ព្រមទាំងកែសម្រួលចុះផ្សាយឡើងវិញនៅខែធ្នូ ឆ្នាំ ២០១៦ ដោយលោក
*** ចុចទីនេះ ដើម្បីធ្វើការ Download កម្មវិធី ANT Croix ដោយឥតគិតថ្លៃ http://antkh.com/tech/31
*** សម្រាប់កម្មវិធីអានផេឌៀ ត្រូវបាន update ចេញពីវចនានុក្រមអាន-ANT ឆ្នាំ ២០១១ និង ២០១២
ដំណើរការលើ Windows (ចាប់ពី Windows 8 ឡើងទៅ) អាច Download ដោយឥតគិតថ្លៃ
មតិ និងយោបល់ទៅលើអត្ថបទនេះ (តាម Facebook)
ខាងក្រោមនេះជាយោបល់ផ្សេងៗរបស់អ្នកទស្សនា