OSDN Git Service

NameLabelダブルクリックでTextがコピーされる問題への仮対応
authorsyo68k <syo68k@users.sourceforge.jp>
Wed, 4 Aug 2010 03:55:43 +0000 (03:55 +0000)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:14:28 +0000 (23:14 +0900)
git-svn-id: http://svn.sourceforge.jp/svnroot/tween/trunk@650 e39ad16e-3079-482e-bb30-4b4d378143b6

Tween/DoubleClickCopyCanceller.vb [new file with mode: 0644]
Tween/Tween.vb
Tween/Tween.vbproj

diff --git a/Tween/DoubleClickCopyCanceller.vb b/Tween/DoubleClickCopyCanceller.vb
new file mode 100644 (file)
index 0000000..13874c2
--- /dev/null
@@ -0,0 +1,53 @@
+' Tween - Client of Twitter
+' Copyright (c) 2007-2010 kiri_feather (@kiri_feather) <kiri_feather@gmail.com>
+'           (c) 2008-2010 Moz (@syo68k) <http://iddy.jp/profile/moz/>
+'           (c) 2008-2010 takeshik (@takeshik) <http://www.takeshik.org/>
+' All rights reserved.
+' 
+' This file is part of Tween.
+' 
+' This program is free software; you can redistribute it and/or modify it
+' under the terms of the GNU General Public License as published by the Free
+' Software Foundation; either version 3 of the License, or (at your option)
+' any later version.
+' 
+' This program is distributed in the hope that it will be useful, but
+' WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+' or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+' for more details. 
+' 
+' You should have received a copy of the GNU General Public License along
+' with this program. If not, see <http://www.gnu.org/licenses/>, or write to
+' the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+' Boston, MA 02110-1301, USA.
+
+
+
+Public Class DoubleClickCopyCanceller
+    Inherits NativeWindow
+    Implements IDisposable
+
+    Const WM_GETTEXT As Integer = &HD
+    Const WM_LBUTTONDBLCLK As Integer = &H203
+    Dim _doubleClick As Boolean = False
+
+    Public Sub New(ByVal control As Control)
+        Me.AssignHandle(control.Handle)
+    End Sub
+
+    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
+        If m.Msg = WM_LBUTTONDBLCLK Then
+            _doubleClick = True
+        End If
+        If _doubleClick AndAlso m.Msg = WM_GETTEXT Then
+            _doubleClick = False
+            'm.Result = CType(0, IntPtr)
+            Exit Sub
+        End If
+        MyBase.WndProc(m)
+    End Sub
+
+    Public Sub Dispose() Implements IDisposable.Dispose
+        Me.ReleaseHandle()
+    End Sub
+End Class
index 8514d13..3819589 100644 (file)
@@ -72,6 +72,7 @@ Public Class TweenMain
     Private _myStatusOnline As Boolean = False
     Private soundfileListup As Boolean = False
     Private _spaceKeyCanceler As SpaceKeyCanceler
+    Private _doubleClickCanceler As DoubleClickCopyCanceller
 
     '設定ファイル関連
     'Private _cfg As SettingToConfig '旧
@@ -556,6 +557,8 @@ Public Class TweenMain
         Me._spaceKeyCanceler = New SpaceKeyCanceler(Me.PostButton)
         AddHandler Me._spaceKeyCanceler.SpaceCancel, AddressOf spaceKeyCanceler_SpaceCancel
 
+        Me._doubleClickCanceler = New DoubleClickCopyCanceller(Me.NameLabel)
+
         Regex.CacheSize = 100
 
         fileVersion = DirectCast(Assembly.GetExecutingAssembly().GetCustomAttributes(GetType(AssemblyFileVersionAttribute), False)(0), AssemblyFileVersionAttribute).Version
index cc5ca52..a2b8c91 100644 (file)
@@ -20,7 +20,8 @@
     <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
     <IsWebBootstrapper>false</IsWebBootstrapper>
     <OptionStrict>On</OptionStrict>
-    <TargetFrameworkProfile />
+    <TargetFrameworkProfile>
+    </TargetFrameworkProfile>
     <PublishUrl>publish\</PublishUrl>
     <Install>true</Install>
     <InstallFrom>Disk</InstallFrom>
     <Compile Include="DialogAsShieldIcon.vb">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Include="DoubleClickCopyCanceller.vb" />
     <Compile Include="FormInfo.Designer.vb">
       <DependentUpon>FormInfo.vb</DependentUpon>
     </Compile>