关于GDI映射在我的教科书的例子

Regarding GDI Mapping in my Textbook example

本文关键字:教科书 我的 GDI 映射 关于      更新时间:2023-10-16

这是我书中一个例子的片段。在这段代码中我不明白的是,SetWindowOrgEx x值向左正增加,为什么会这样?从理论上讲,这应该类似于MM_TEXT,其中x值向右增加。我也注意到,x值确实增加到右边SetViewportOrgEx。为什么x值增加到右边SetViewportOrgEx,但SetWindowOrgEx的x值增加到左边?另外,改变这两个范围有什么意义?你就不能编辑其中一个区段吗?

SetMapMode(hdc, MM_ISOTROPIC);
SetWindowExtEx(hdc, 276, 72, NULL);
SetViewportExtEx(hdc, cxClient, cyClient, NULL);
SetWindowOrgEx(hdc, 138, 36, NULL);
SetViewportOrgEx(hdc, cxClient / 2, cyClient / 2, NULL);

这取决于您在做什么,但是这些函数是用来移动轴的,所以逻辑点(0,0)指的是左上角以外的东西。

您通常应该只使用一个函数,SetWindowOrgExSetViewportOrgEx,这取决于哪个适合您的需要;不是。