// Paparkan koordinat tetikus dalam kawasan pelanggan dalam masa nyata pada tajuk tetingkap dialog
batalkan CTestDlg::OnMouseMove(UINT nFlags, titik CPoint)
{
// TODO: Tambahkan kod pengendali mesej anda di sini dan/atau panggil lalai
CString str;
str.Format("X:%d Y:%d", point.x, point.y); //Formatkan maklumat titik koordinat tetikus dan simpan pada pembolehubah jenis CString str
SetWindowText(str); //Kemas kini tetingkap program Edit teks kawalan
CDialog::OnMouseMove(nBendera, titik);
}
//Apabila tetikus diklik, koordinat tetikus di kawasan pelanggan dipaparkan
kosongkan CTestDlg::OnLButtonDown(UINT nFlags, titik CPoint)
{
// TODO: Tambahkan kod pengendali mesej anda di sini dan/atau panggil lalai
CString str;
str.Format("x = %d, y = %d", point.x, point.y);
AfxMessageBox(str,MB_ICONQUESTION);
CDialog::OnLButtonDown(nBendera, titik);
}
Untuk mencapai kesan ini, anda perlu mengetahui koordinat kedudukan yang sama dalam dua gambar dan koordinat dua kawalan pada kotak dialog Kemudian melalui operasi tambah dan tolak, anda boleh mendapatkan koordinat kawasan yang sama pada imej dalam kotak dialog, terus Hanya sambungkan dua koordinat ini dengan garis lurus.
Atas sebab ini, cara mendapatkan koordinat kawalan pada kotak dialog adalah isu utama. Program ujian kecil berikut ditulis untuk menyambungkan titik dalam dua kawalan gambar dengan garis lurus Yang lebih intuitif ialah empat penjuru kawalan gambar, jadi sudut kawalan disambungkan dalam program. Mula-mula, letakkan dua kawalan gambar dengan saiz yang sama bersebelahan pada kotak dialog, tetapkan pengecamnya masing-masing kepada IDC_LEFT dan IDC_RIGHT, kemudian tambah dua kotak edit untuk memaparkan saiz kawalan gambar, dan tambahkan data yang sepadan kepada dua kotak edit ini . Ahli m_row dan m_colume. Tambah butang untuk menyambungkan titik dalam kawalan gambar, dan tambahkan fungsi ahli OnMatch() pada butang ini.
void CControlDlg::OnMatch(){// TODO: Tambahkan kod pengendali pemberitahuan kawalan anda di sini
Crect rectL,rectR;
kosongkan CQiHuoView::OnMouseMove(UINT nFlags, titik CPoint)//pergerakan tetikus
{
CClientDC dc(ini);
Pen pemuka Cpen(PS_SOLID,1,RGB(255,255,255));
dc.SetBkMode(TELUS);
dc.SelectObject(&dashpen);
int x=0,y=0;
x = titik.x;
y = titik.y;
CString a;a.Format(_T("%d, %d"),x,y);
dc.SetTextColor(RGB(255,0,0));
dc.TextOut(800,310,a); //Koordinat paparan, 800,300 di sini adalah kedudukan yang dipaparkan, tetapkannya mengikut situasi
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan kod koordinat kedudukan yang ditekan tetikus di kawasan pelanggan kotak dialog dalam MFC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!