/*-----------------------------------------
PICKFONT.C -- Create Logical Font
(c) Charles Petzold, 1998
-----------------------------------------*/
#include <windows.h>
#include "resource.h"
// Structure shared between main window and dialog box
typedef struct
{
int iDevice, iMapMode ;
BOOL fMatchAspect ;
BOOL fAdvGraphics ;
LOGFONT lf ;
TEXTMETRIC tm ;
TCHAR szFaceName [LF_FULLFACESIZE] ;
}
DLGPARAMS ;
// Formatting for BCHAR fields of TEXTMETRIC structure
#ifdef UNICODE
#define BCHARFORM TEXT ("0x%04X")
#else
#define BCHARFORM TEXT ("0x%02X")
#endif
// Global variables
HWND hdlg ;
TCHAR szAppName[] = TEXT ("PickFont") ;
// Forward declarations of functions
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
BOOL CALLBACK DlgProc (HWND, UINT, WPARAM, LPARAM) ;
void SetLogFontFromFields (HWND hdlg, DLGPARAMS * pdp) ;
void SetFieldsFromTextMetric (HWND hdlg, DLGPARAMS * pdp) ;
void MySetMapMode (HDC hdc, int iMapMode) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = szAppName ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow (szAppName, TEXT ("PickFont: Create Logical Font"),
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
if (hdlg == 0 || !IsDialogMessage (hdlg, &msg))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static DLGPARAMS dp ;
static TCHAR szText[] = TEXT ("\x41\x42\x43\x44\x45 ")
TEXT ("\x61\x62\x63\x64\x65 ")
TEXT ("\xC0\xC1\xC2\xC3\xC4\xC5 ")
TEXT ("\xE0\xE1\xE2\xE3\xE4\xE5 ")
#ifdef UNICODE
TEXT ("\x0390\x0391\x0392\x0393\x0394\x0395 ")
TEXT ("\x03B0\x03B1\x03B2\x03B3\x03B4\x03B5 ")
TEXT ("\x0410\x0411\x0412\x0413\x0414\x0415 ")
TEXT ("\x0430\x0431\x0432\x0433\x0434\x0435 ")
TEXT ("\x5000\x5001\x5002\x5003\x5004")
#endif
;
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_CREATE:
dp.iDevice = IDM_DEVICE_SCREEN ;
hdlg = CreateDialogParam (((LPCREATESTRUCT) lParam)->hInstance,
szAppName, hwnd, DlgProc, (LPARAM) &dp) ;
return 0 ;
case WM_SETFOCUS:
SetFocus (hdlg) ;
return 0 ;
case WM_COMMAND:
switch (LOWORD (wParam))
{
case IDM_DEVICE_SCREEN:
case IDM_DEVICE_PRINTER:
CheckMenuItem (GetMenu (hwnd), dp.iDevice, MF_UNCHECKED) ;
dp.iDevice = LOWORD (wParam) ;
CheckMenuItem (GetMenu (hwnd), dp.iDevice, MF_CHECKED) ;
SendMessage (hwnd, WM_COMMAND, IDOK, 0) ;
return 0 ;
}
break ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
// Set graphics mode so escapement works in Windows NT
SetGraphicsMode (hdc, dp.fAdvGraphics ? GM_ADVANCED : GM_COMPATIBLE) ;
// Set the mapping mode and the mapper flag
MySetMapMode (hdc, dp.iMapMode) ;
SetMapperFlags (hdc, dp.fMatchAspect) ;
// Find the point to begin drawing text
GetClientRect (hdlg, &rect) ;
rect.bottom += 1 ;
DPtoLP (hdc, (PPOINT) &rect, 2) ;
// Create and select the font; display the text
SelectObject (hdc, CreateFontIndirect (&dp.lf)) ;
TextOut (hdc, rect.left, rect.bottom, szText, lstrlen (szText)) ;
DeleteObject (SelectObject (hdc, GetStockObject (SYSTEM_FONT))) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
BOOL CALLBACK DlgProc (HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
{
static DLGPARAMS * pdp ;
static PRINTDLG pd = { sizeof (PRINTDLG) } ;
HDC hdcDevice ;
HFONT hFont ;
switch (message)
{
case WM_INITDIALOG:
// Save pointer to dialog-parameters structure in WndProc
pdp = (DLGPARAMS *) lParam ;
SendDlgItemMessage (hdlg, IDC_LF_FACENAME, EM_LIMITTEXT,
LF_FACESIZE - 1, 0) ;
CheckRadioButton (hdlg, IDC_OUT_DEFAULT, IDC_OUT_OUTLINE,
IDC_OUT_DEFAULT) ;
CheckRadioButton (hdlg, IDC_DEFAULT_QUALITY, IDC_PROOF_QUALITY,
IDC_DEFAULT_QUALITY) ;
CheckRadioButton (hdlg, IDC_DEFAULT_PITCH, IDC_VARIABLE_PITCH,
IDC_DEFAULT_PITCH) ;
CheckRadioButton (hdlg, IDC_FF_DONTCARE, IDC_FF_DECORATIVE,
IDC_FF_DONTCARE) ;
CheckRadioButton (hdlg, IDC_MM_TEXT, IDC_MM_LOGTWIPS,
IDC_MM_TEXT) ;
SendMessage (hdlg, WM_COMMAND, IDOK, 0) ;
// fall through
case WM_SETFOCUS:
SetFocus (GetDlgItem (hdlg, IDC_LF_HEIGHT)) ;
return FALSE ;
case WM_COMMAND:
switch (LOWORD (wParam))
{
case IDC_CHARSET_HELP:
MessageBox (hdlg,
TEXT ("0 = Ansi\n")
TEXT ("1 = Default\n")
TEXT ("2 = Symbol\n")
TEXT ("128 = Shift JIS (Japanese)\n")
TEXT ("129 = Hangul (Korean)\n")
TEXT ("130 = Johab (Korean)\n")
TEXT ("134 = GB 2312 (Simplified Chinese)\n")
TEXT ("136 = Chinese Big 5 (Traditional Chinese)\n")
TEXT ("177 = Hebrew\n")
TEXT ("178 = Arabic\n")
TEXT ("161 = Greek\n")
TEXT ("162 = Turkish\n")
TEXT ("163 = Vietnamese\n")
TEXT ("204 = Russian\n")
TEXT ("222 = Thai\n")
TEXT ("238 = East European\n")
TEXT ("255 = OEM"),
szApp
金枝玉叶9
- 粉丝: 206
- 资源: 7637
最新资源
- 三菱FX3U PLC与Factory IO通讯仿真PID液位调节程序 说到学习PLC 的PID ,要有硬件 测温度的PID设备有: 输入输出模拟量模块300左右X2(有些PLC自带)
- carsim+simulink联合仿真实现变道 包含路径规划 carsim+simulink联合仿真实现变道 包含路径规划算法+mpc轨迹跟踪算法 可选simulink版本和c++版本算法(二选一)
- carsim+simulink联合仿真实现变道 包含路径规划 carsim+simulink联合仿真实现变道 包含路径规划算法+mpc轨迹跟踪算法 可选simulink版本和c++版本算法 可以适用于
- mpc模型预测控制从原理到代码实现 mpc模型预测控制从原理到代码实现 mpc模型预测控制详细原理推导 matlab和c++两种编程实现 四个实际控制工程案例: 双积分控制系统 倒立摆控制系统 车辆运
- 1.中性点不接地系统的小电流接地故障及故障选线的MATLAB仿真,也可以改接地的 2.两个打包(中性点不接地与中性点经消弧线圈接地),一个(中性点不接地或中性点经消弧线圈接地) 4.选线方法的仿真
- 多智能体,神经网络,自适应动态滑模,有文献可以参考 符合要求请放心联系,simulink,复现,保证能够运行
- 该模型是内置式的MTPA控制,速度环的输出为给定转矩,然后方式1通过求解MTPA方程得到dq给定电流,方式2进行工程近似得到dq给定电流,并外和id=0控制进行比较
- 永磁同步电机的无传感器控制算法 基于永磁同步电机(PMSM)的改进的卡尔曼滤波速度观测器simulink模型;可与普通卡尔曼滤波进行比对,精度大大提高
- 基于ESO的永磁同步电机无感FOC 1.采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息,从而实现无位置传感器控制; 2.提供算法对应的参考文献和仿真模型 拿
- 电机过调制算法模型从线性调制区到过调制区,算法已在量产车中验证过 电子文件产品
- 交错并联buck 两重化交错并联buck电路,采用电压电流双闭环控制,电流采用平均电流采样,载波移相180°,减少了电流纹波,可以减少电感体积 仿真波形如图所示,当采用软启动时,0.3秒的时间输出
- 永磁同步电机风力发电系统仿真模型,包含变桨系统与传动系统,运行各项指标正确,可稳定发出有功功率,无功功率为0
- fpga MIL-STD1553B源码,支持BC ,BM,RT 可任意移植到xilinx,altera,actel全系列型号 功能和接口可参考actel芯片1553b核,纯源码
- carsim交通场景搭建,carsim与matlab,prescan联合仿真,巡航、路径规划及道控制算法,cpar文件输出及场景图生成
- MMC,模块化多电平变流器的MATLAB,Simulink仿真 11电平三相MMC逆变器并网仿真,调制方式选用载波移相调制 采用双闭环矢量控制,施加环流抑制控制和子模块电容电压均衡控制 直流侧采用
- 三段式电流保护Matlab编程 Simulink仿真 1. Matlab编程计算三段式电流保护的整定值,并进行灵敏度校验; 2.Simulink搭建仿真模型,对三段式电流保护模型进行仿真分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈