| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5728 人关注过本帖
标题:关于人机交互的问题。
取消只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
去试了下,原来这样可以。

LPCWSTR  lpcwStr[100] = {L"hello!"};

for ( i = 0; i < 6; i++ )
        TextOut(hdc, 60, 30, lpcwStr[i], 20);
还有吗有其他的方法。

梅尚程荀
马谭杨奚







                                                       
2012-02-15 17:33
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
嗯, 好了。

TextOut(hdc, 0, 200,"hello!", 6);
BitBlt(hdc,4, 6, 90, 80, hdcSrc, 50, 60, rop);
图片附件: 游客没有浏览图片的权限,请 登录注册


梅尚程荀
马谭杨奚







                                                       
2012-02-15 20:04
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
下面这段代码是我看孙鑫老师视频时跟着他敲的。
程序代码:
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WidSunProc();

int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)

{
    WNDCLASS  wndcls;
    wndcls.cbClsExtra = 0;
    wndcls.cbWndExtra = 0;
    wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);
    wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);
    wndcls.hInstance = hInstance;
    wndcls.lpfnWndProc = WidSunProc;     // 为什么这里有错!       
    wndcls.lpszClassName = "weixin2003";
    wndcls.lpszMenuName = NULL;
    wndcls.style = CS_HREDRAW | CS_VREDRAW;

    RegisterClass(&wndcls);

    HWND  hwnd;
    hwnd = CreateWindow("weixin2003", "北京维新技术培训中心", WS_OVERLAPPEDWINDOW,
                         0, 0, 600, 800, NULL, NULL, hInstance, NULL);

    ShowWindow(hwnd, SW_SHOWNORMAL);
    UpdateWindow(hwnd);

    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

LRESULT CALLBACK WidSunProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
   switch(uMsg)
   {
   case  WM_CHAR:
       char szChar[20];
       sprintf(szChar, "char is %d", wParam);
       MessageBox(hwnd, szChar, "weixin", 0);
       break;
   case WM_LBUTTONDOWN:
       MessageBox(hwnd, "Mouse Clicked!", "weixin", 0);
       HDC hdc;
       hdc = GetDC(hwnd);
       TextOut(hdc, 0, 50, "计算机编程语言培训", strlen("计算机编程语言培训"));
       ReleaseDC(hwnd, hdc);
       break;
   case WM_PAINT:
      
       PAINTSTRUCT ps;
       hdc = BeginPaint(hwnd, &ps);   
       TextOut(hdc, 0, 0, " 维新培训", strlen("维新培训"));
       EndPaint(hwnd, &ps);
       break;
   case    WM_CLOSE:
       if(IDYES == MessageBox(hwnd, "是否真的结束?", "weixin", MB_YESNO))
       {
            DestroyWindow(hwnd);
       }
       break;
   case WM_DESTROY:
       PostQuitMessage(0);
       break;
   default:
       return  DefWindowProc(hwnd, uMsg, wParam, lParam);
   }
  
   return 0;
}
这是他敲代码的视频截图:
图片附件: 游客没有浏览图片的权限,请 登录注册
回调函数孙鑫老师都取名为:WidSunProc.
他敲完后能运行,但是我编译就有一处错误,貌似我和他的代码没不同啊。
具体错误是 D:\C语言教程\lesson1\Windows\WinMain.cpp(22) : error C2440: '=' : cannot convert from 'long (__stdcall *)(void)' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
什么原因?
我把WinSunProc全改成WndProc也一样.


[ 本帖最后由 有容就大 于 2012-2-15 21:35 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-02-15 21:29
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用闲出屁在2012-2-15 21:28:15的发言:

现在积累这些知识微乎其微 关键先掌握学习方法 遇到一个新技术如何能快速的上手 如何的学习它的框架
嗯,我在看视频了,收获蛮大。

梅尚程荀
马谭杨奚







                                                       
2012-02-15 21:30
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 79楼 闲出屁
不是下载的代码,是视频里孙鑫老师一行行敲出来的,边敲边解释,我就跟着他敲。您帮看下
wndcls.lpfnWndProc = WidSunProc;这行的错误是什么原因,我看不懂那一堆啊。视频上也是这么敲的为什么他能运行我不能,难道和系统设置有关,__stdcall?

梅尚程荀
马谭杨奚







                                                       
2012-02-15 22:15
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用闲出屁在2012-2-15 22:06:08的发言:

好 加油 学WINDOWS开发 肯定要多看MSDN
谢谢你提供的MSDN的下载地址,我下了个,发现这东西确实很有用,不是,是太有用了。

梅尚程荀
马谭杨奚







                                                       
2012-02-15 22:16
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
error C2440: '=' : cannot convert from 'long (__stdcall *)(void)' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
他说的什么?
不能把一个没参数的函数指针转化成有参数的函数指针?这种转化需要么子东西?function-style cast(一个函数类型)?

梅尚程荀
马谭杨奚







                                                       
2012-02-15 22:23
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
哈哈,是了,是了。
当上敲到WidSunproc()时他是复制到头上去的 ,我切换了没注意到。头声明的参数不能为空!!!后来又忘记看上边了。编译器竟然不指到头上去,害我网上找半天。
谢谢你的帮忙
图片附件: 游客没有浏览图片的权限,请 登录注册

睡了,晚安。

[ 本帖最后由 有容就大 于 2012-2-15 22:33 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-02-15 22:32
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用我菜119在2012-2-15 22:39:59的发言:

楼主,你还是系统的去学一下《windows程序设计》一书,看视频学的那玩意东一下西一下,最后你还是什么都不知道,先把windows的消息机制搞清楚了,画线、输出一段话,这些都是小儿科,不要舍本求末,只学一些花把势!
谢谢您的建议,我下了个电子版的。

梅尚程荀
马谭杨奚







                                                       
2012-02-16 09:02
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 89楼 beyondyf
你们可以继续,我们观望学习。对大家都有好处。

梅尚程荀
马谭杨奚







                                                       
2012-02-16 14:50
快速回复:关于人机交互的问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022751 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved