转到正文

奋斗

生命在于折腾

很简单的一个用sdk写的c++程序

这是头文件的部分 声明一下函数

#include “resource.h”
#include

BOOL CALLBACK DlgProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
void ChangeUserMsg(bool bshow, int x,const WCHAR* str);

LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

这是前面的一些必要的声明

#define MSNMusicString L”\\0%s\\0%d\\0[%s]\\0″
bool bshow = 0;
HINSTANCE hInst;
NOTIFYICONDATA IconData;
int msna,msnb;
#define WM_MYTRAY WM_USER+99

主要的函数

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{

hInst = hInstance;

DialogBoxParam(hInst, (LPCSTR)IDD_DIALOG1, NULL, DlgProc, NULL);
return 0;
}

BOOL CALLBACK DlgProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
HICON hIcon;
HWND hact;
WCHAR  temp[256];

switch(iMsg)
{
case WM_INITDIALOG:
hIcon = LoadIcon(hInst, (LPCSTR)IDI_ICON1);
SendMessage(hwnd, WM_SETICON, (WPARAM)ICON_BIG, (LPARAM)hIcon);
SendMessage(hwnd, WM_SETICON, (WPARAM)ICON_SMALL, (LPARAM)hIcon);
CheckDlgButton(hwnd,IDC_RADIO1,BST_CHECKED);  msnb=1;
CheckDlgButton(hwnd,IDC_RADIO4,BST_CHECKED);  msna=1;
break;

case WM_TIMER:
if (wParam==1)
{
hact=GetForegroundWindow();
GetWindowTextW (hact,temp,256);
ChangeUserMsg(1,msnb,temp);
}
break;

case WM_MYTRAY :
if (lParam==WM_LBUTTONDOWN)
{
Shell_NotifyIcon(NIM_Delete, &IconData);
ShowWindow(hwnd,1);
}
break;

case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
msna=IsDlgButtonChecked(hwnd,IDC_RADIO6);
if(msna==1)
{
KillTimer(hwnd,1);
ChangeUserMsg(0,0,0);
}
else
{
if(IsDlgButtonChecked(hwnd,IDC_RADIO1)==1)  msnb=1;
if(IsDlgButtonChecked(hwnd,IDC_RADIO2)==1)  msnb=2;
if(IsDlgButtonChecked(hwnd,IDC_RADIO3)==1)  msnb=3;
SetTimer(hwnd,1,2000, 0);
}
IconData.cbSize = sizeof(NOTIFYICONDATA);
IconData.hWnd  = hwnd;
IconData.uID = 12;
IconData.hIcon  = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
IconData.uFlags = NIF_MESSAGE + NIF_ICON + NIF_TIP;
IconData.uCallbackMessage = WM_MYTRAY;
strcpy(IconData.szTip, “自定义Msn Messenger的个人消息”);
Shell_NotifyIcon(NIM_ADD, &IconData);
ShowWindow(hwnd,0);
break;
case IDCANCEL:
KillTimer(hwnd,1);
Shell_NotifyIcon(NIM_Delete, &IconData);
ChangeUserMsg(0,0,0);
EndDialog(hwnd, 0);
break;
case IDC_ABOUT:
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hwnd, (DLGPROC)About);
break;

default:
return TRUE;
}

default:
return FALSE;
}
}

// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;

case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}

下面是主要功能的实现

void ChangeUserMsg(bool bshow, int x, const WCHAR*  str)
{
COPYDATASTRUCT msndata;
WCHAR buffer[500];
WCHAR style[5];

if(x==1)
{wsprintfW(style,L”Office”);}
else if (x==2)
{wsprintfW(style,L”Music”);}
else
{wsprintfW(style,L”Games”);}

//bool bshow = 1;

wsprintfW(buffer, MSNMusicString,  style, bshow , str );

HWND msnui = NULL;
msndata.dwData = 0×547;
msndata.lpData = &buffer;
msndata.cbData = (lstrlenW(buffer)*2)+2;
msnui = FindWindowEx(NULL, msnui, “MsnMsgrUIManager”, NULL);

if (msnui!=0)
{
SendMessage(msnui, WM_COPYDATA, 0, (LPARAM)&msndata);
}
}

主要的问题出在WCHAR这个类型上
开始不知道怎么处理怎么传递怎么赋值怎么复制等
还有一个就是托盘图标
很简单的实现,但是在填充数据结构的时候
IconData.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
把LoadIcon的第一个参数设为0了,图标怎么都显示不出来
看别人的程序有这样写的,不知道是不是说错了
找原因找了半天 还以为是自己做的图标的问题
图标并不一定要是16×16的

msn messenger 有个小功能
可以在个人消息处显示当前你正在听的音乐
这有些类似QQ的个人签名

前提是你打开这个功能并使用类似wmp或者支持此功能的播放器
其实 msn messenger不仅可以显示音乐图标
还可以显示办公或者游戏图标

我这两天做了个小东西
就是可以把这个个人消息更改为你当前窗口的标题

这样 当你玩游戏的时候
你的联系人就可以从你的消息知道你正在干吗
你的朋友也可以看到你正在看什么网页或者忙着办公…

绿色软件 下载就用
点击下载此文件

今天一搜
发现Google已经收录了Bborn.Cn这个域名
不过不是第一个
7月30就收录了
还是比较快的
不过因为主页是Flash页面的关系
后面的就很少了
这个应该想办法改改

前些天在5q下了个 东厂仅一位
是个台湾相声 现场演出录像
很不错
看了以后马上以后喜欢上他们了
他们在台湾很有名气 作品打入音像排行榜的第四
舞台表演很生动
绝对不是我们这里的相声那股朽气
把相声和舞台剧都融在一起了
看了后面的花絮
让人感到演员平时都挺搞笑
联想到这边的相声演员那种皮笑肉不笑的表情
或者下海或者当县长或者拍个小电影
真感觉到文化的落后

“相声瓦舍”铁打主力是冯翊纲和宋少卿
他们的段子一般都是100分钟左右的
让人从头笑到尾
不过 在这里他们的出版很难买到
不够够幸运
在taobao上看到有人买他们的视频dvd
等到了学校一定买回来看看

想体验一下 可以到这里来听听
这是今年 最近出版

http://haoting.com/musiclist/ht_8540.htm

实际上现在对论坛管理很严格的
备案的时候如果有论坛很难通过

本来打算用动网的
但是看起来很累赘
乱七八糟的东西太多
漏洞也很多
早上在它论坛上问个问题
结果给我删了
一气之下不用了

换了leadbbs
很简单 功能也很不错
装了两个插件
魔法表情和巧嘴娃娃
上传的时候出的问题
今天网速出奇的慢
我都是让同学给我传的
传给同学都传了半天
同学上传估计也是因为速度太慢
没有传完整
晚上又找了个朋友 整了半天
才差不多

现在看看感觉还不错呢

昨天打算弄个相册
找了些程序
看中了 fpv
是个flash界面的
可以引用网易的相册
这样就不占自己服务器的空间
现在还是个beta版
有些小问题
而且主页下面有个计数器去不掉
今天下午和那个开发者聊了会
他说买正式版…[sad]

Pages: Prev 1 2 3 ...63 64 65 66 67 68 69 70 71 Next