createwindow

时间:2024-05-18 05:45:53编辑:莆田seo君

win32与winCE有什么区别

  将WIN32应用程序移植到WINCE平台时通常遇到API不可用,这是因为WinCE仅实现了win32 API的一个子集。在移植的时候必需检查应用程序中的所有WIN32 API调用,包括函数、消息以及相关的数据结构,对不兼容的函数调用作一些修改或寻求可替代的函数。主要从以下几个方面入手:
  1,有些WIN32提供的函数在WINCE函数库中完全不支持,其中一些在WINCE中有新的函数替代,例如,在WIN32界面编程中用到的MENU BAR和TOOL BAR相关的函数,在WINCE中将他们捆绑成COMMAND BAR,构键了一个新的API。还有一些不支持的函数就必需通过调用其他函数间接实现他们的功能。如C运行库中不存在内存分配函CALLOC,可以通过调用MALLOC,并显示初始化内存来实现。再如,可以用POLYLINE实现MOVETO和LINETO函数功能。
  2,有些WIN32函数在WINCE中虽然支持但多了一些限制,如减少了参数个数或缩小了参数的可选范围。例如,创建窗口函数CREATEWINDOW和CREATEWINDOWEX在WINCE中是支持的,但可供选择的窗口类型有所减少。这一点也是在程序移植过程中应该注意的。
  3,WINCE程序也可以用MFC开发,但是程序消息定义有所不同,他不完全支持以WM_和EM_开头的消息。例如,WINCE设备通常用输入笔替代鼠标,因而没有DOSKTOP PC中的鼠标右击动作,不支持WM_RBOTTONDOWN消息。同时WINCE自身又产生了一些新的消息。因为内存限制,该平台上的所有应用程序都运行在低内存状态下,他们必须具备和操作系统协同管理内存的能力。当系统可用内存低于某个阀值时,WINCE系统会向正在运行的应用程序发送消息,使其关闭或释放暂时不用的内存。新增消息WM_HIBERNATE即完成此功能。
  因此,在移植应用程序时首先要考察WINCE对WIN32 API的支持程度。可采用替换、修改现有API调用或增加新的API等方法来适应系统的要求。


[create_time]2016-05-07 00:45:27[/create_time]2012-07-02 22:56:10[finished_time]3[reply_count]2[alue_good]go陌小洁8849df[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.d41e842f.eOmZ3P-DWG0nM9YCMaH9IA.jpg?time=5116&tieba_portrait_time=5116[avatar]TA获得超过12.9万个赞[slogan]这个人很懒,什么都没留下![intro]2261[view_count]

VC Createwindow()函数的疑问

在为程序建立窗口之前,必须首先呼叫RegisterClass注册一个窗口类别。在这里,你所注册的窗口信息中包含了你那两个窗口的名子,并把他们存于操做系统的窗口列表中,当你用Createwindow创建时,他会从系统的那个列表中查找到相应的窗口信息。


[create_time]2008-04-03 17:18:53[/create_time]2008-04-03 17:35:55[finished_time]1[reply_count]0[alue_good]ugrg[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.6635edab.3mb150qznrAd9cNYyRCubQ.jpg?time=3115&tieba_portrait_time=3115[avatar]TA获得超过374个赞[slogan]这个人很懒,什么都没留下![intro]1444[view_count]

c语言怎么编出windows窗口

调用window库窗口函数即可创建windows窗口。必须使用windows的编译器,如VC,MS等等。RegisterClassEx函数:该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。 RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。CreateWindowEx函数:该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。关于创建窗口和其他参数的内容,请参看CreateWindow。具体仍可见微软的msdn。消息处理函数WindowProc:该函数是一个应用程序定义的函数。它处理发送给窗口的消息。WINDPROC类型定义了一个指向该回调函数的指针。WindowProc是用于应用程序定义函数的占位符。函数原型:LRESULT CALLBACK WindowProc (HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);参数:hwnd:指向窗口的句柄。uMsg:指定消息类型。wParam:指定其余的、消息特定的信息。该参数的内容与UMsg参数值有关。IParam:指定其余的、消息特定的信息。该参数的内容与uMsg参数值有关。返回值:返回值就是消息处理结果,它与发送的消息有关。一个简单的Window的代码如下:#include #include LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);int WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd ){ TCHAR *szName = _T("myWindow"); WNDCLASSEX wc = {0}; HWND hWnd = NULL; MSG Msg = {0}; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.cbSize = sizeof(WNDCLASSEX); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//通过函数来设置一个白色的背景,这里大家设置为NULL看看,会很有趣的 wc.hCursor = NULL;//不设置 wc.hIcon = NULL;//不设置 wc.hIconSm = NULL;//不设置 wc.hInstance = hInstance;//当前程序的句柄,hInstance是有系统给传递的 wc.lpfnWndProc = WinProc;//窗口处理过程的回调函数。 wc.lpszClassName = szName;//窗口类的名字。 wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; RegisterClassEx(&wc);//在系统中注册 hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜欢"),WS_OVERLAPPEDWINDOW, 200,100,600,400,NULL,NULL,hInstance,NULL);//创建窗口,窗口标题为"我的窗口我喜欢" if(hWnd == NULL) { MessageBox(NULL,_T("There's an Error"),_T("Error Title"),MB_ICONEXCLAMATION|MB_OK); return 0; } ShowWindow(hWnd,nShowCmd);//显示窗口 UpdateWindow(hWnd); //下面是对消息的循环处理,大家先不必管这些,下节课我会细说的 while(GetMessage(&Msg,NULL,0,0)) { TranslateMessage(&Msg);//翻译消息 DispatchMessage(&Msg);//分派消息 } return Msg.message;}//消息处理函数LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam){ switch(Msg)//处理消息过程 { case WM_DESTROY://响应鼠标单击关闭按钮事件 PostQuitMessage(0);//退出消息队列 return 0;//退出函数 } return DefWindowProc(hWnd,Msg,wParam,lParam);}

[create_time]2016-01-12 13:42:02[/create_time]2011-10-30 10:43:31[finished_time]9[reply_count]0[alue_good]乐跑小子[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.9ab713db.c4jNpCX2nHcbSwcmRvEyEg.jpg?time=6124&tieba_portrait_time=6124[avatar]TA获得超过1.5万个赞[slogan]这个人很懒,什么都没留下![intro]985[view_count]

怎样让列表框具有LBS_NOTIFY风格?

CListCtrl风格
LVS_ICON:为每个item显示大图标
LVS_SMALLICON:为每个item显示小图标
LVS_LIST:显示一列带有小图标的item
LVS_REPORT:显示item详细资料
直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”
----------------------------------------------------------------------------
ListBox风格:
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID
);
参数rect指定了列表框的位置和尺寸,pParentWnd为父窗口的指针,nID用于指定列表框控件的ID。

最后重点讲讲参数dwStyle,它指定了列表框控件的风格,以下是各种风格说明:

LBS_EXTENDEDSEL:支持多重选择,在点击列表项时按住Shift 键或Ctrl 键即可选择多个项
LBS_HASSTRINGS:指定一个含有字符串的自绘式列表框
LBS_MULTICOLUMN:指定一个水平滚动的多列列表框, 通过调用CListBox::SetColumnWidth 来设置每列的宽度
LBS_MULTIPLESEL:支持多重选择。列表项的选择状态随着用户对该项单击或双击鼠标而翻转
LBS_NOINTEGRALHEIGHT:列表框的尺寸由应用程序而不是Windows 指定。通常,Windows指定尺寸会使列表项的某些部分隐藏起来
LBS_NOREDRAW:当选择发生变化时防止列表框被更新,可发送消息改变该风格
LBS_NOTIFY:当用户单击或双击鼠标时通知父窗口
LBS_OWNERDRAWFIXED:指定自绘式列表框,即由父窗口负责绘制列表框的内容,并且列表项有相同的高度
LBS_OWNERDRAWVARIABLE:指定自绘式列表框,并且列表项有不同的高度
LBS_SORT:使插入列表框中的项按升序排列
LBS_STANDARD:相当于指定了WS_BORDER|WS_VSCROLL|LBS_SORT
LBS_USETABSTOPS:使列表框在显示列表项时识别并扩展制表符(‘\t’),默认的制表宽度是32 个对话框单位
LBS_WANTKEYBOARDINPUT:允许列表框的父窗口接收WM_VKEYTOITEM 和WM_CHARTOITEM 消息,以响应键盘输入
LBS_DISABLENOSCROLL:使列表框在不需要滚动时显示一个禁止的垂直滚动条

dwStyle可以是以上所列风格的组合。与其他控件一样,除了这些风格一般还要为列表框控件设置WS_CHILD、WS_VISIBLE、WS_TABSTOP、WS_BORDER、WS_VSCROLL等风格。
一般创建单选列表框时,风格要设置为:WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_STANDARD,如果不希望列表框项排序显示则应去掉LBS_STANDARD。创建多选列表框时,只需要在单选列表框风格后添加LBS_MULTIPLESEL或LBS_EXTENDEDSEL风格。

对于对话框模板中直接添加的列表框控件,其属性页中的属性包含了以上风格,例如属性Multicolumn对应的就是LBS_MULTICOLUMN风格。


[create_time]2016-03-05 01:03:04[/create_time]2013-05-17 12:44:31[finished_time]1[reply_count]3[alue_good]来自月岩仪态万千的比目鱼[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.54daba19.ydmyePT-74YV9TumPFR7-w.jpg?time=3039&tieba_portrait_time=3039[avatar]TA获得超过1570个赞[slogan]这个人很懒,什么都没留下![intro]1228[view_count]

LBS是什么意思?

基于位置的服务,它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在地理信息系统(外语缩写:GIS、外语全称:Geographic Information System)平台的支持下,为用户提供相应服务的一种增值业务。它包括两层含义:首先是确定移动设备或用户所在的地理位置;其次是提供与位置相关的各类信息服务。意指与定位相关的各类服务系统,简称"定位服务",另外一种叫法为MPS-Mobile Position Services, 也称为"移动定位服务"系统。如找到手机用户的当前地理位置,然后在上海市6340平方公里范围内寻找手机用户当前位置处1公里范围内的宾馆、影院、图书馆、加油站等的名称和地址。所以说LBS就是要借助互联网或无线网络,在固定用户或移动用户之间,完成定位和服务两大功能。扩展资料:2001年的911事件也让美国的公众认识到位置服务的重要性,因此,在为了实现E911目标的同时,基于位置服务的业务也逐渐开展起来。从某种意义上来说,是E911促使移动运营商投入大量的资金和力量来研究位置服务,从而催生了LBS市场。LBS的概念虽然提出的时间不长,但其发展已经有相当长的一段历史。LBS首先从美国发展起来,起源于以军事应用为目的所部署的全球定位系统(Global Positioning System,GPS),随后在测绘和车辆跟踪定位等领域开始应用。当GPS民用化以后,产生了以定位为核心功能的大量应用,直到20世纪90年代后期,LBS及其所涉及的技术才得到广泛的重视和应用。参考资料:百度百科-LBS

[create_time]2019-08-20 00:59:25[/create_time]2012-04-22 23:22:30[finished_time]7[reply_count]30[alue_good]菏侯腊r[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.d2ad9b8d.VoWVEKf-TUvAN1jYbcsoEQ.jpg?time=3183&tieba_portrait_time=3183[avatar]醉心答题,欢迎关注[slogan]我可以为了一个故事,飞去你的城市。[intro]147777[view_count]

API中怎么用CreateWindowEx创建一个窗体或控件

函数功能:该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。函数原型:CreateWindowEx函数创建一个层叠的,自动弹出的(pop-up)或是一个子窗口通过扩展格式。另外这个函数的作用与CreateWindow函数的作用相同。要获得更多的关于创建窗口的信息和关于CreateWindowEx函数参数的详细描述。参见CreateWindowHWND CreateWindowEx(DWOR DdwExStyle, //窗口的扩展风格LPCTSTR lpClassName, //指向注册类名的指针LPCTSTR lpWindowName, //指向窗口名称的指针DWORD dwStyle, //窗口风格int x, //窗口的水平位置int y, //窗口的垂直位置int nWidth, //窗口的宽度int nHeight, //窗口的高度HWND hWndParent, //父窗口的句柄HMENU hMenu, //菜单的句柄或是子窗口的标识符HINSTANCE hInstance, //应用程序实例的句柄LPVOID lpParam //指向窗口的创建数据);


[create_time]2017-09-06 11:24:49[/create_time]2017-09-06 13:45:57[finished_time]1[reply_count]0[alue_good]地瓜说机[uname]https://gips0.baidu.com/it/u=3975694940,220674615&fm=3012&app=3012&autime=1695441428&size=b200,200[avatar]TA获得超过2.9万个赞[slogan]这个人很懒,什么都没留下![intro]445[view_count]

如何用CreateWindowEx创建一个BUTTON

这就是win32代码

HWND lhWnd = CreateWindowEx(NULL,L"button",NULL,WS_POPUP | WS_VISIBLE,0,0,100,20,hParent, NULL, NULL, NULL);

lhWnd 就是按钮的句柄可以进行自己想要的操作
hParent 就是父窗口的句柄


[create_time]2017-11-02 15:20:54[/create_time]2017-11-02 16:47:28[finished_time]1[reply_count]1[alue_good]地瓜说机[uname]https://gips0.baidu.com/it/u=3975694940,220674615&fm=3012&app=3012&autime=1695441428&size=b200,200[avatar]TA获得超过2.9万个赞[slogan]这个人很懒,什么都没留下![intro]631[view_count]

VC++中窗口创建之后如何修改让它最大化显示?

CDialog::ShowWindow( SW_SHOWMAXIMIZED ); 就这个就能实现了.


void CPlayerDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
CDialog::ShowWindow( SW_SHOWMAXIMIZED );
}


[create_time]2016-04-06 05:41:37[/create_time]2010-04-24 16:46:21[finished_time]3[reply_count]2[alue_good]sarahaaa[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.1e356154.mhrItz8WVToIBncKHi7l-A.jpg?time=2934&tieba_portrait_time=2934[avatar]超过23用户采纳过TA的回答[slogan]这个人很懒,什么都没留下![intro]2490[view_count]

上一篇:系统图标

下一篇:电脑提速