1. HANDLE CreateThread(
WINCE 6.0 系统的时间设置
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
各成员的含义不用解释了吧。 2)我们来看一下如何利用SYSTEMTIME结构体和SetLocalTime函数进行本地时间的设置。
SYSTEMTIME st;
st.wYear = 2007;
st.wMonth = 11;
st.wDay = 24;
st.wHour = 3;
st.wMinute = 14;
st.wSecond = 0;
st.wMilliseconds = 0;
SetSystemTime(&st);
对比一下SYSTEMTIME结构体,可以发现,除wDayOfWeek成员之外,其它各成员都进行赋值了,甚至连wMilliseconds。使用这种方式进行系统时间设置时,会忽略wDayOfWeek成员,可以不进行该成员的赋值(即使你赋值了也不会被考虑的),但其它所有成员都必须时行赋值,否则无法成功地进行时间设置。
3)如果只想对其中的几项进行设置的话,可以先使用GetLocalTime函数来获取当前本地时间,然后再对相应的项进行修改,如下:
SYSTEMTIME st;
GetLocalTime(&st);
st.wHour = 3;
SetLocalTime(&st);
VC中MessageBox的常见用法
一、关于MessageBox
消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。
1.MessageBox(“这是一个最简单的消息框!”);
2.MessageBox(“这是一个有标题的消息框!”,”标题”);
3.MessageBox(“这是一个确定 取消的消息框!”,”标题”, MB_OKCANCEL );
4.MessageBox(“这是一个警告的消息框!”,”标题”, MB_ICONEXCLAMATION );
5.MessageBox(“这是一个两种属性的消息框!”,”标题”, MB_ICONEXCLAMATION|MB_OKCANCEL );
6.if(MessageBox(“一种常用的应用”,”标题”,MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
MFC快捷菜单、工具条、对话框、标题栏
建立单文档应用程序
在窗格显示时间(Frame类里)
CTime time;
time = CTime::GetCurrentTime();
CString s=time.Format(“%H:%M:%S”);
m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_INDICATOR_TIME),s);
CFrameWnd::OnTimer(nIDEvent);
点击弹出对话框(view类里)
CModalDialog *dlg = new CModalDialog;
dlg->Create(IDD_DIALOG,this);
dlg->ShowWindow(SW_SHOW);
右键菜单(快捷菜单)(view类里)
CMenu popup;
popup.LoadMenu(IDR_MENU_RIGHT);
CMenu *pop=popup.GetSubMenu(0);
ClientToScreen(&point);
pop->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN,point.x,point.y,this);
CView::OnRButtonDown(nFlags, point);
修改标题栏图标(Frame类里)
HICON m_hIcon;
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
SetIcon(m_hIcon,
MFC限制鼠标区域、画橡皮条线、任务栏显示图标、核对标记、文档背景色
限制鼠标活动区域
可以写在view类的OnMouseMove中添加如下代码
if (nFlags&&MK_LBUTTON)
{
CWnd *hwnd = GetActiveWindow();
CRect rect;
hwnd->GetWindowRect(&rect);
ClipCursor(&rect);
}
当要恢复鼠标使用范围时调用ClipCursor(NULL);即可。
还有SetCapture()和ReleaseCapture()的使用
画弹性橡皮线
在view类里响应左键单击,以及鼠标移动和左键弹起消息
鼠标移动
CClientDC dc(this);
dc.SetROP2(R2_NOT);
dc.MoveTo(oldPoint);
dc.LineTo(newPoint);
dc.MoveTo(oldPoint);
dc.LineTo(point);
newPoint = point;
左键按下只需记录坐标点,鼠标弹起只需画线。
当要画其它图形时要麻烦很多,因为在鼠标移动时要用到画刷
画矩形
if (GetCapture()==this&& nFlags && MK_LBUTTON)
MFC对话框置顶 SetWindowPos()的用法
函数原型:
BOOL SetWindowPos
(
HWND hWnd, //窗口句柄
HWND hWndInsertAfter, //排列顺序的句柄
int X, //水平坐标
int Y, //垂直坐标
int cx, //宽
int cy, //高
UINT uFlags //窗口定位标识
);
说明:
这个函数能改变窗口的大小、位置和设置子窗口、弹出窗口或顶层窗口的排列顺序。
返回值:
BOOL,如果返回值非零表示成功,返回零表示失败。错误信息请参看GetLastError函数。
参数表:
参数 类型及说明
hwnd HWND,欲定位的窗口句柄
hWndInsertAfter HWND,置于hwnd前面的窗口句柄。这个参数必须是窗口的句柄或是下面的值之一: HWND_BOTTOM 将窗口置于其它所有窗口的底部
HWND_NOTOPMOST 将窗口置于其它所有窗口的顶部,并位于任何最顶部窗口的后面。如果这个窗口非顶部窗口,这个标记对该窗口并不产生影响
c实现Socket通信
程序分为服务端和客户端(服务端就相当于我们的网站服务器,客户端就相当于我们的浏览器)
在服务端,我们需要大致按照以下步骤:
1.初始化socket库。
2.绑定本机地址和端口。(服务端特有)
3.监听端口,等待客户端连接。
4.当有客户端连接,进行处理,但后继续监听或者结束程序。
5.退出程序,关闭socket,终止对socket库的使用。
在客户端,我们需要按照以下步骤:
1.初始化socket库。
2.设置远程主机的地址和端口信息,并连接。
3.等待服务端的响应
4.当服务端响应,进行处理。
5.退出程序,关闭socket,终止对socket库的使用。
下面引用一张来自网络的图片,直观的说明通信的过程。
下面是代码示例:
服务端:
#include#include int main(void) { int len = 0; WSADATA wd; int ret = 0; SOCKET s,c; char sendBuf[1000]="", recvBuf[1000]=""; SOCKADDR_IN saddr, caddr; ret = WSAStartup(MAKEWORD(2,2),&wd); /*1.初始化操作(希望使用的WinSock DLL 的版本)*/ if(ret != 0) { return 0; } if(HIBYTE(wd.wVersion)!=2 || LOBYTE(wd.wVersion)!=2) { printf("初始化失败"); WSACleanup(); return 1; } /*2.创建服务端socket*/ s = socket(AF_INET, SOCK_STREAM, 0); /*3.设置服务端信息*/ saddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
C语言中的格式占位符
C语言中的格式占位符:
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
MinGW (gcc) 给程序添加图标
一般步骤是:
step1:将.c源文件编译成.o目标文件
step2:将.rc资源源文件及其资源编译成.res资源文件
step3:将.o文件和.res文件连接成.exe文件
示例:
例如,有一个windows程序是prog.exe,这个程序的源文件是prog.c。现在打算把图标prog.ico添加到prog.exe程序中,这样做:
1、创建prog.rc文件,文件内容:
A ICON “prog.ico”
2、生成prog.res文件
windres -i prog.rc –input-format=rc -o prog.res -O coff
3、将prog.c编译成prog.o文件
gcc -c -o prog.o prog.c
4、连接成exe文件
gcc prog.o prog.res -o prog.exe