日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Win32 API 窗口版本转换度分秒为小数

發(fā)布時(shí)間:2025/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Win32 API 窗口版本转换度分秒为小数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

經(jīng)緯度的度分秒和小數(shù)之間轉(zhuǎn)換是做GIS時(shí)常用的;下面實(shí)現(xiàn)一個(gè)Win32 API 版本度分秒轉(zhuǎn)換為小數(shù);

與此網(wǎng)站對(duì)比;

http://www.gzhatu.com/du2dfm.html

?

使用VC++ 6 構(gòu)建;

/*------------------------------------------------- bobo, 2020 -------------------------------------------------*/#include <windows.h> #include <windowsx.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); float lltodecimal(int, int, int); HINSTANCE appInstance;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow) {static TCHAR szAppName[] = TEXT("lonlat");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 = NULL;wndclass.lpszClassName = szAppName;appInstance = hInstance;if (!RegisterClass(&wndclass)){MessageBox(NULL, TEXT("Program requires Windows NT!"),szAppName, MB_ICONERROR);return 0;}hwnd = CreateWindow(szAppName, TEXT("度分秒轉(zhuǎn)換小數(shù)點(diǎn)"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, hInstance, NULL);ShowWindow(hwnd, iCmdShow);UpdateWindow(hwnd);while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam; }LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {HDC hdc;PAINTSTRUCT ps ;char buf1[30],buf2[30],buf3[30];int v1,v2,v3,v4;HWND hButton;HWND hEdit1,hEdit2,hEdit3,hEdit4;LPTSTR result[128];float llnumber = 0;switch (message){case WM_CREATE:hEdit1 = (HWND)CreateWindow(TEXT("edit"), NULL, WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL, 10,10,100,50,hwnd,(HMENU)521,appInstance,NULL);hEdit2 = (HWND)CreateWindow(TEXT("edit"), NULL, WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL, 120,10,100,50,hwnd,(HMENU)522,appInstance,NULL);hEdit3 = (HWND)CreateWindow(TEXT("edit"), NULL, WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL, 230,10,100,50,hwnd,(HMENU)523,appInstance,NULL);hEdit4 = (HWND)CreateWindow(TEXT("edit"), NULL, WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL, 340,10,150,50,hwnd,(HMENU)524,appInstance,NULL);hButton = (HWND)CreateWindow(TEXT("Button"),TEXT("DO IT !!!"), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,300, 100, 160, 65,hwnd,(HMENU)520, //設(shè)置按鈕id,原本是設(shè)置菜單的 所以需要HMENUappInstance,NULL);return 0;case WM_SIZE:return 0;case WM_RBUTTONDOWN:return 0;case WM_LBUTTONDOWN: return 0;case WM_PAINT:hdc = BeginPaint(hwnd, &ps);EndPaint(hwnd, &ps);return 0;case WM_COMMAND: if (LOWORD(wParam) == 520 && HIWORD(wParam) == BN_CLICKED)//按鈕{GetWindowText(GetDlgItem(hwnd,521), buf1, 30);//根據(jù)父窗口句柄以及控件id, 獲取控件句柄,然后用GetWindowText獲取控件內(nèi)的文本v1=atoi(buf1); //轉(zhuǎn)換為整型GetWindowText(GetDlgItem(hwnd,522), buf2, 30);v2=atoi(buf2);GetWindowText(GetDlgItem(hwnd,523), buf3, 30);v3=atoi(buf3);//MessageBox(hwnd,result, TEXT("提示"), MB_OK);//SetWindowText(hEdit2,result); //錯(cuò)誤,無(wú)法設(shè)置hEdit2;llnumber=lltodecimal(v1,v2,v3);sprintf(result,"%.7lf",llnumber); //格式化為float,保留7位小數(shù)SetWindowText(GetDlgItem(hwnd,524),result);}break;case WM_DESTROY:PostQuitMessage(0);return 0;}return DefWindowProc(hwnd, message, wParam, lParam); }float lltodecimal(int d1, int f1, int m1) {float dc1=(float)d1 + (float)f1 / 60 + (float)m1 / 3600;return dc1; }

實(shí)現(xiàn)了基本功能,問(wèn)題還不少;并且只能輸入整數(shù);

?

總結(jié)

以上是生活随笔為你收集整理的Win32 API 窗口版本转换度分秒为小数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。